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

相关文章

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

使用Folium在Python中进行地图可视化的操作指南

《使用Folium在Python中进行地图可视化的操作指南》在数据分析和可视化领域,地图可视化是一项非常重要的技能,它能够帮助我们更直观地理解和展示地理空间数据,Folium是一个基于Python的地... 目录引言一、Folium简介与安装1. Folium简介2. 安装Folium二、基础使用1. 创建

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

MySQL9.0默认路径安装下重置root密码

《MySQL9.0默认路径安装下重置root密码》本文主要介绍了MySQL9.0默认路径安装下重置root密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录问题描述环境描述解决方法正常模式下修改密码报错原因问题描述mysqlChina编程采用默认安装路径,

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1