《硅谷求职周报》(5/14/18)
内容摘要
Google面经分析;
亚马逊与 Google 的流量竞争;
巴菲特与科技股的爱恨情仇;
公司动态
亚马逊与 Google 竞争愈演愈烈,
这次它停止了在搜索引擎购买广告
▼
据彭博社的报道,亚马逊已经停止购买 Google 的商品陈列广告。这是亚马逊和 Google 的又一次对抗,也是电商与搜索引擎争夺流量的标志性事件。
随着亚马逊电商规模越来越大,品牌与用户习惯已经培育成熟,越来越多用户开始跳过搜索引擎,而直接在电商平台上搜索商品。在 2014 年的一次采访中,Google 董事长、前 CEO 艾瑞克·施密特就指出,随着用户变得先在电商搜索商品,以后亚马逊会成为 Google 的最大竞争对手。
亚马逊与 Google 的竞争越来越激烈。亚马逊与 Google 都早已经不再是关注单一业务的互联网公司,其业务包罗万象,在许多新领域,尤其是人工智能、智能家居领域展开竞争。
Google 需要应对电商平台的崛起,以及内容碎片化分布在各个应用中之后,在搜索市场上对于内容发现和引流的力不从心,所以近年全力发展 Google Assistant。试想,如果 Google Assistant 足够发达,所有的搜索和导流在对话之中完成,也就跳过了搜索窗口或 APP 的局限,这会给它带来新的机会。
亚马逊的野心则更大,直接推出了Amazon Alexa和Amazon Echo两款产品,前者是可以嵌入到所有硬件内的语音人工智能系统,后者是具备智能家居控制功能的智能音箱。基于这两款产品,亚马逊有可能实现物联网服务,取代搜索系统,自然也取代了 Google。
此次亚马逊停止购买 Google 的广告服务,也可能是亚马逊要加大开发自身广告业务的先兆。在 2018 年第一季度,亚马逊的广告业务营收同比增长了 139%,超过 20 亿美元,虽然对比 Google 和 Facebook 的广告营收规模来说还很少,但考虑到亚马逊电商本身的访问流量、商家数量,未来在广告业务上的潜力非常大。
在宏大的业务布局和市场争夺中,亚马逊和 Google 竞争加剧、互相“封杀”简直是不可避免的。
从前不碰科技股的巴菲特
揭露苹果和亚马逊到底有何魅力
▼
巴菲特在5月4日晚间披露信息称,伯克希尔哈撒韦在第一季度中买进了7500万股苹果股票,这一消息推动苹果股价在周五创下了历史新高。
在巴菲特股东大会现场,巴菲特向腾讯《一线》透露了买苹果的原因:主要是看重现金流好的消费品,“高科技不是我的能力圈”。巴菲特表示:“这是一家令人难以置信的公司,如果你看看苹果,我认为它的收入几乎是美国第二大利润率公司的两倍。苹果的产品和服务非常受欢迎,以至于该公司在糟糕的管理条件下都有可能生存下来。巴菲特认为,投资于好业务比投资于好管理要更值得。而苹果目前两者兼有。
一位持有伯克希尔股票23年的股东问及巴菲特在美国错过谷歌和亚马逊,而中国也有腾讯和阿里巴巴这样的公司,未来伯克希尔是否会考虑对高科技投资的策略改变时,巴菲特和芒格进行了反思。
巴菲特说:“事实上,我从一开始就关注了亚马逊。我认为贝索斯做到了一件接近奇迹的事情,而问题是,如果我认为一件事是奇迹,我往往不会下注。”对于谷歌母公司Alphabet,巴菲特表示他一开始就看关注了股票,但不能确定在其目前价格的基础上,前景能好很多。
芒格补充说,亡羊补牢,犹未为晚,我们现在已经开始买科技股了。
GOOGLE专题
LintCode上周组织了一次模拟面试比赛,比赛题目均选自Google最近面经题,我们在这里给大家做一个简单的分析。
1.Twitch Words
题目描述:我们正常的单词不会有连续两个以上相同的字母,如果出现连续三个或以上的字母,那么这是一个抽搐词。现在给一个单词,从左至右求出所有抽搐字母的起始点和结束点。
思路点拨:遍历一遍字符串,找到长度大于等于三的相同字母子串,记录起始点。
考点分析:简单的热身题,有一个小细节,快速的做完并且bugfree会让面试官眼睛一亮。
❖九章参考程序
https://www. jiuzhang.com/solution/t witch-words
2.Recommend Friends
题目描述:给n个人的朋友名单,告诉你user,请找出user最可能认识的人。(他和user有最多的共同好友且他不是user的朋友)。
思路点拨:对于user的好友关系,建立一个hashmap存储。对于所有不是user好友的人,求出他和user的共同好友数,维护最大共同好友数的那个id。
考点分析:对于取两个人的共同朋友,稍微思考一下,即可想到对user的朋友列表采用数据结构存储,然后遍历其他人的朋友列表,快速的查询计数,同样本题有需要注意的细节,可以体现出Google比较喜欢注重细节的同学。
❖九章参考程序
https://www. jiuzhang.com/solution/r ecommend-friends
3.Take Coins
题目描述:有n个硬币排成一排,每次要你从最左边或者最右侧拿出一个硬币。总共拿k次。写一个算法,使能拿到的硬币的和最大。
思路点拨:将list的前缀和求出来,然后依次枚举右边取x个,那么剩下就是左边去k - x个,用前缀和可以O(1)算出答案,所以整体复杂度为O(n)。
考点分析:想清楚后可以发现不管每次从左边还是右边拿,最后从左边拿的个数和从右边拿的个数是确定的,那么我们可以通过双指针或者前缀和+扫描线的方式进行枚举左右拿硬币的个数,这样就可以O(n)的复杂度优美的过这题了。
❖九章参考程序
https://www. jiuzhang.com/solution/t ake-coins/
4.Fermat Point of Graphs
题目描述:有一个无向无环连通图,每条边通过两个顶点x[i],y[i]来描述,每条边的长度通过d[i]来描述。求这样的一个点p,使得其他点到p的距离和最小,如果有多个这样的点p,返回编号最小的。
思路点拨:dp[i] 代表以 i 为根的子树中的结点到 i 结点的距离和,dp[i] = sum(dp[j] + np[j] * d(i, j)),np[i] 代表以 i 为根的子树的所有结点的个数,np[i] = sum(np[j]) + 1。
考点分析:该题算是比较难的一道题了,无向无环的连通图,我们可以理解为一棵多叉树,对于一棵多叉树要求费马点,显然需要树形dp,不过这里我们需要dfs两次,第一次先求出每个字数的节点数np[i]和子树中的结点到 i 结点的距离和dp[i],那么在第二个dfs中就能求出费马点的位置,具体的状态转移可以参考一下答案。
❖九章参考程序:
https://www. jiuzhang.com/solution/f ermat-point-of-graphs/
推荐阅读
Google 是如何审批20亿行代码的?coding style 真的很重要!
关于Google, 你所不知道的30件事
Google晋升机制 | 大公司如何升级打怪, 获得晋升?
欢迎关注我的微信公众号:九章算法(ninechapter)。
精英程序员交流社区,定期发布面试题、面试技巧、求职信息等。