楼主: mengyadaizi
跳转到指定楼层
上一主题 下一主题
收起左侧

google电面,直接把我和面试官面时候的google doc复制下来给大家看

🔗
fanfeng 2016-5-18 10:50:54 | 只看该作者
全局:
第二题如果是3sum的话(找三个数的和正好等于k),time complexity可以减少到n^2,用hash table。
但是这个题问<k,有小于n^3时间的算法吗?没想出来。。。any suggestions?
回复

使用道具 举报

🔗
ns920020 2016-5-19 03:53:39 | 只看该作者
全局:
弱弱的问下,是他把问题打在docs里还是,在电话里用语音说的。。。。我怕一紧张就听不清对方说啥了
回复

使用道具 举报

🔗
 楼主| mengyadaizi 2016-5-19 04:10:56 | 只看该作者
全局:
fanfeng 发表于 2016-5-18 10:50
第二题如果是3sum的话(找三个数的和正好等于k),time complexity可以减少到n^2,用hash table。
但是这 ...

先取第一个数,后面两个用两个pointer,一个从头一个从尾,往中间找,n^2
回复

使用道具 举报

🔗
dukangs 2016-8-25 15:01:16 | 只看该作者
全局:
fanfeng 发表于 2016-5-17 21:50
第二题如果是3sum的话(找三个数的和正好等于k),time complexity可以减少到n^2,用hash table。
但是这 ...

可以n^2logN做
回复

使用道具 举报

全局:
刚刚拿python写了下第二题。output 没有问题,但不知道我的思路对不对?
complexity要求也达到了

另外楼主运气好好~希望我后面的运气也这样:))
  1. def sumSmaller(nums,input):
  2.         result = []
  3.         i=0
  4.         count = 0
  5.         while i < len(nums)-1:
  6.                 if i == 0 or nums[i]!=nums[i-1]:
  7.                         j= i+1
  8.                         k=len(nums)-1
  9.                         while j<k:
  10.                                 if nums[i]+nums[j]+nums[k]<input:
  11.                                         result.append([nums[i],nums[j],nums[k]])
  12.                                         count +=1
  13.                                         j+=1
  14.                                         k=len(nums)-1 #so once i found the "<" as required. i will count from the last item compare against j
  15.                                 elif nums[i]+nums[j]+nums[k]>=input:
  16.                                         print("been here")
  17.                                         k-=1

  18.                 i+=1
  19.         print(count)
  20.         return result
  21.                
  22.        

  23. nums = [5, 3, 6, 1, 8, 10]
  24. print(sumSmaller(nums,13))
复制代码

补充内容 (2016-8-26 17:13):
忽略我写的“print been here。”单纯test code...sorry la~
回复

使用道具 举报

🔗
bcc 2016-10-23 08:05:12 | 只看该作者
全局:
claireyangyang 发表于 2016-8-26 17:11
刚刚拿python写了下第二题。output 没有问题,但不知道我的思路对不对?
complexity要求也达到了

没太明白这个逻辑,如果nums不是sorted怎么进行的j++和k--呢?
回复

使用道具 举报

🔗
luofeidream 2016-10-24 05:22:51 | 只看该作者
全局:
第二题,先排序,然后按照3sum做,O(N^2)~~
回复

使用道具 举报

🔗
feyhi 2016-11-4 14:59:01 | 只看该作者
全局:
O(n^2 log n)
3sum的思路+binary search
回复

使用道具 举报

🔗
oldfish 2016-11-6 05:20:03 | 只看该作者
全局:
luofeidream 发表于 2016-10-24 05:22
第二题,先排序,然后按照3sum做,O(N^2)~~

是啊 排序之后 two pointers 就可以了

唯一麻烦的是 two pointers 的解法 justify 起来总是麻烦点,需要证明不会忽略符合条件的组合
回复

使用道具 举报

🔗
sherrylin1989 2016-11-6 05:29:33 | 只看该作者
全局:
这样把题目复制粘贴过来不太好吧,会不会影响到那个善良的小哥
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表