Google方法论 地图最短路径算法 人生和商业智慧 上帝喜欢笨人

本文主要是介绍Google方法论 地图最短路径算法 人生和商业智慧 上帝喜欢笨人,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. Google地图最短路径算法

  1. 假如你再开发一款地图应用,如何找到离你最近的5个加油站
  2. 很重要的第一步,解题之前,先读懂题目
    • 人和开车找位置的差别,对人来说200m都可能很远,但对开车来说,2.3公里和2.5公里没有太大差别,可能还有堵车的问题
    • 搞清楚每一个加油站和汽车的位置,以及行车方向,汽车是移动的通过GPS导航,是基于坐标、还是房屋门牌
    • 搞清楚行车方向
    • 距离不是欧几里得直线距离,两点之间的路可能有很多种,基于动态规划可以获取两点间的最短距离
    • 按距离排序,找到最近的5个加油站距离(排序是一类解决方式,但效率不是最高的)
  3. 回到问题原点:
    • 没有必要针对很远的加油站排序,浪费资源
    • 基于二叉树的细类堆数据结构,可以满足N个数据排序前K个的数据算法复杂度:第1的只需要N,第2的增加LogN次计算,第3的也是增加LogN)次计算(这里就差了一个工程数量级,淘宝求全年销售top10差距就更大)
  4. 继续回到问题原点:
    • 考虑到地图被很多人使用,在求解路径过程时候,A到E点、B到E点、C到E点,其中可能很多复用的线路,我们可以提前计算好存储起来,在求解某条最短路径时候,只需要通过服务调取出来即可,会降低很大的重复计算量
  5. 大数据思维,很重要一条就是是将所有事件统一起来,全局性的优化

1.1 归纳起来:

  1. 少做无用功
  2. 很多事情遵循统一个规律(最短路径、N中TopK、堆),学习理论需要思考理论提出的时候,要解决的应用问题是什么,搞清楚这块才有可能一通百通
  3. 解决问题时候,我们不知不觉做了很多前提假设,适当回到原点,重新读懂问题(产品思维也是强调从不同用户角度看问题,跳出局限性)
  4. 好的面试官会引导,不怕刷题的

2. 锦标赛排序算法(N个选手中选K个选手)

在这里插入图片描述

  1. 算法说明:

    • 将所有数字放入二叉树的叶子节点,按比赛规则,两两比较选出最大的
    • 对于第二大的,从所有被最大的数字淘汰的数字中选择
  2. 算法复杂度:第一名的只需要N,第二名的增加LogN次计算,第三名也是增加LogN

  3. 25人短跑比赛,有5个赛道,单轮淘汰赛,如何最快角逐金银铜前3名?

    • 前5轮:25人分5组(A1~A5 … E1~E5),角逐每组第1
      在这里插入图片描述

    • 第6轮:每组第1再赛一轮(假定A1,B1,C1,D1,E1),角逐冠军(假定为A1)
      在这里插入图片描述

    • 第7轮:由于只要前3,故D、E两组已被淘汰(如果还继续比较则为无用功),因此亚军、季军候选只需要从A、B、C组挑选(A2、A3、B1、B2、C1),再一起赛一轮可知
      在这里插入图片描述

  4. 归纳起来:

    • 少做无用功
    • 善用信息

3. 教育和学习

  1. 学好语文、数学、历史,科学:培养好沟通、个人素养,思维逻辑,看清楚自己位置,以及科学看待问题和讲道理的人
  2. 上好大学目的:提升自己格局,让自己可以在社会养活自己,从社会消费者到贡献者的必要训练
  3. 大学五训练:看透钱、学会服从和合作、认清边界、成为健全的人、树立信仰

4. 人生和商业智慧

  1. 上帝喜欢笨人:事情一件件的做,不要并行处理;善始善终,做很多半途而废的事情,不如完成一两件小事;
  2. 一生要做的五件事:恋爱结婚生子、做自己喜欢的事情做到极致、回馈、有一个信仰、给社会留下遗产
  3. 超越免费:稀缺性、时效性、个性化、可用性、可靠性、粘性(数据、用户)
  4. APRU(Average Revenue Per User): 平均用户收入,抛弃不值钱的关注,有这些时间不如找一些真正可以帮组我们的朋友,为他们提供一些价值
  5. 中美生活习惯差异:家庭观念(中国人家族、美国家庭)、做事方式(计划性和随意性)、任何人直接的距离(对隐私的看重)、父母和孩子的关系(成人即独立)、公私分明(下班私人时间看重)、主动性(很早就找到老板说明自己的职业发展计划,希望老板支持和配合)

5. 走出死循环

  1. 不要让孩子继承自己的焦虑(有欲望追求,满足不了或者凡事自己想把控);麦糠中的两粒谷子,不听也罢(GIGO,机器学习中的噪音数据);隔断或差异化地生活;
  2. 不要把上名校当成中进士,目光所及,即人生的境界;所谓的终生学习,是不断超越自己,超越别人;
  3. 多了解孩子,树立榜样(家长的懒惰,孩子会模仿);以后不在孩子面前玩手机,多一些高质量的陪伴(多陪陪孩子,了解具体情况,看看出了什么问题,多和孩子一起看看书,比上培训班要好很多了)
  4. 学习不是中彩票(相信自己的运气,不想通过努力),将教育当成人生的必须品,不用囫囵吞枣的学完,而是根据自己的兴趣一点一点的学下去,长期效应
  5. 学会生活,学会花钱(不要将钱投在阻碍在自己上升的地方),走不出贫困的人(时间和钱投入在哪了?)
  6. 不要迷恋公务员(高风险也不一定意味着高回报,但低风险一定没有高回报)

未完待续。。。

参考

  • 得到《谷歌方法论》 – 吴军
  • https://tkstorm.com/posts-list/books/wj-google-methodology/google-method-notes/
  • https://www.cnblogs.com/Acx7/p/14697436.html#:~:text=%E9%94%A6%E6%A0%87%E8%B5%9B%E6%8E%92%E5%BA%8F%E5%B0%B1%E6%98%AF%E9%80%9A%E8%BF%87%E8%AE%B0%E5%BD%95,%E7%82%B9%E7%9A%84%E5%AE%8C%E5%85%A8%E4%BA%8C%E5%8F%89%E6%A0%91%E6%8F%8F%E8%BF%B0%E3%80%82
  • https://www.jianshu.com/p/4b84adcc5d7c

这篇关于Google方法论 地图最短路径算法 人生和商业智慧 上帝喜欢笨人的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/708170

相关文章

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

VSCode设置python SDK路径的实现步骤

《VSCode设置pythonSDK路径的实现步骤》本文主要介绍了VSCode设置pythonSDK路径的实现步骤,包括命令面板切换、settings.json配置、环境变量及虚拟环境处理,具有一定... 目录一、通过命令面板快速切换(推荐方法)二、通过 settings.json 配置(项目级/全局)三、

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)

《如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)》:本文主要介绍如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)问题,具有很好的参考价值,希望对大家有所帮助,如有... 目录先在你打算存放的地方建四个文件夹更改这四个路径就可以修改默认虚拟内存分页js文件的位置接下来从高级-

一文详解如何查看本地MySQL的安装路径

《一文详解如何查看本地MySQL的安装路径》本地安装MySQL对于初学者或者开发人员来说是一项基础技能,但在安装过程中可能会遇到各种问题,:本文主要介绍如何查看本地MySQL安装路径的相关资料,需... 目录1. 如何查看本地mysql的安装路径1.1. 方法1:通过查询本地服务1.2. 方法2:通过MyS

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

Springboot实现推荐系统的协同过滤算法

《Springboot实现推荐系统的协同过滤算法》协同过滤算法是一种在推荐系统中广泛使用的算法,用于预测用户对物品(如商品、电影、音乐等)的偏好,从而实现个性化推荐,下面给大家介绍Springboot... 目录前言基本原理 算法分类 计算方法应用场景 代码实现 前言协同过滤算法(Collaborativ