123
返回列表 发新帖
楼主: mymulife
跳转到指定楼层
上一主题 下一主题
收起左侧

Facebook 电面

全局:
Badger96 发表于 2016-7-31 12:38
i = 0时还没把6添加进hashset啊,i = 3时才会把6加进去。你如果一开始先把后面的sum加进去当然会错了

我理解错了。我以为你是先把所有sum放进hash里,然后再找的。放一个找一次是没错的。
回复

使用道具 举报

🔗
Xochitl 2016-7-31 16:58:04 | 只看该作者
全局:
最近在复习面试,所以看到面经都想一下写写代码,顺便mark一下自己已经看过了。
和大家交流一下方法,如果有什么错误和改进的地方,希望能得到大家的指正。顺便预祝楼主顺利晋级:)

第一题是LC27 Remove Element https://leetcode.com/problems/remove-element/
用two point应该能解O(n)的解,我并没有remove因为觉得如果可以return的话,可以省去remove的那步
  1.     def removeElement(self, nums, val):
  2.         start, end = 0, len(nums)-1
  3.         while start <= end:
  4.             if nums[start] != val:
  5.                 start += 1
  6.             else:
  7.                 nums[start],nums[end] = nums[end],nums[start]
  8.                 end -= 1
  9.         return nums[:start+1]
复制代码


第二题应该是 LC 325. Maximum Size Subarray Sum Equals k  的变种
https://leetcode.com/problems/maximum-size-subarray-sum-equals-k/
题意没有很清楚是不是只有一个subarray可以满足sum = k,我就当只有一个答案来写了,如果有多个,应该是要建立一个dict,dict[sum] = [list of index] 然后用每个index来输出多种可能,如果不存在,return 0
  1. def maxSubArrayLen(nums, k):
  2.     sumNum = 0
  3.     dict = {}
  4.     for i in xrange(len(nums)):
  5.         sumNum  = sumNum + nums[i]
  6.         if sumNum == k:
  7.             return nums[:i+1]

  8.         elif dict.has_key(sumNum-k):
  9.             return nums[dict[sumNum-k]+1:i+1]

  10.         if not dict.has_key(sumNum):
  11.             dict[sumNum] = i
  12.     return 0
复制代码


回复

使用道具 举报

🔗
dimi 2016-8-22 09:52:05 | 只看该作者
全局:
都是原题运气不错啊
回复

使用道具 举报

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

本版积分规则

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