楼主: 巫山云似盖
跳转到指定楼层
上一主题 下一主题
收起左侧

脸熟initial面经,感觉好像被面试官黑了

🔗
moonyellow 2017-7-10 09:24:24 | 只看该作者
全局:
raining2009 发表于 2017-7-9 10:58
楼主不刷题吗?标准答案Leetcode上写的多清楚
https://leetcode.com/articles/move-zeroes/#approach-3- ...

其实感觉解法三并非最优解,可以看看这个答案下面的评论...
回复

使用道具 举报

🔗
 楼主| 巫山云似盖 2017-7-11 01:57:50 | 只看该作者
全局:
moonyellow 发表于 2017-7-9 06:37
第一题的细节很多,还要看需不需要保持原有的非零项的顺序。

实现的不同,可能造成一个非零项是一次或者 ...

lz第一题的代码就是贴在补充内容里的一模一样,这个保持了原有非零项的顺序。Add Binary写法很标准,这点我想起来了一开始的确用的是str concat,面试官提了一下,用join就好了。
回复

使用道具 举报

🔗
 楼主| 巫山云似盖 2017-7-11 02:12:15 | 只看该作者
全局:
个人感觉一般的面试30min完整写完两个题,包括适当的intuitively的讨论和主动跑一些test case,time和space达到要求,就可以通过。剩下的过不过,就看面试官爽不爽了。如果F要的interviewee是一上来就直接背写出最优答案没什么好讨论的,那只能说我们没有缘分吧。我也见过到其它公司面试的同学,就是因为不用思考直接秒出标准答案反而被拒的。
回复

使用道具 举报

🔗
edyyy 2017-7-11 02:39:56 | 只看该作者
全局:
巫山云似盖 发表于 2017-7-11 02:12
个人感觉一般的面试30min完整写完两个题,包括适当的intuitively的讨论和主动跑一些test case,time和space ...

现在面试啊,写出来太慢说你不行,太快说你背题,想要我们咋样
回复

使用道具 举报

🔗
 楼主| 巫山云似盖 2017-7-11 10:27:14 | 只看该作者
全局:
edyyy 发表于 2017-7-11 02:39
现在面试啊,写出来太慢说你不行,太快说你背题,想要我们咋样

确实反复纠结了两天。后来想想也不用纠结了,有的时候挂掉会有n种理由,比如hr要离职了或者整个team hiring frozen了,也不一定全是面试官一人的决定。。。我也当过面试官,看到很多应聘者角度看不到的事,甚至公司内部的权力斗争有时也会影响到一些人的面试结果。我那个hr本是西雅图的,我说我想去湾区的HQ她才安排湾区的面试给我,说不定本来就不大热情继续process了。
回复

使用道具 举报

🔗
kennethinsnow 2017-7-17 10:33:46 | 只看该作者
全局:
lz答得不错,应该有onsite的,继续努力会有好offer的
回复

使用道具 举报

🔗
DreamBoy 2017-7-17 11:44:23 | 只看该作者
全局:
你第一题很好啊 比我当时好多了 我当时互换还被说了。。因为明显不需要管后面是啥 那干啥要互换。。。看你大概写的熟不熟了估计 fb千万别犹豫 直接一次bug free 像你这样一开始就要给出最优解法 不要等讨论完后才说不要extra space才给出 这样就晚了。。。我当时也是这题被挂的 虽然简单但是不容易做到perfect。。。。我也下班后准备时不时准备下面试 可以加个微信互相交流
回复

使用道具 举报

🔗
zzgzzm 2017-8-5 09:12:53 | 只看该作者
全局:
stealop 发表于 2017-6-29 22:37
对收尾指针就是这个,一个loop就是       int pointer = 0;
        for(int i=0; i < nums.length;i++) ...

I think all 3 ways can be accomplished by a single loop. Actually, I can see that using multiple loop fits the thinking process better, but the single loop way is equivalent by check the same condition.
  1. // might have unneeded writing (one pass)
  2. void moveLeft1(vector<int>& nums) {
  3.   int pointer = 0;
  4.   for (int num : nums)
  5.     if (num) nums[pointer++] = num;
  6. }

  7. // do not preserve non-zero order (one pass)
  8. void moveLeft2(vector<int>& nums) {
  9.   int i = 0, j = nums.size();
  10.   while (i < j) {
  11.     if (nums[i]) ++i;
  12.     else if (!nums[j]) --j;
  13.     else swap(nums[i++], nums[j--]);
  14.   }
  15. }

  16. // preserve non-zero order and minimum writing (two passes)
  17. void moveLeft3(vector<int>& nums) {
  18.   int i = 0, j = 0;
  19.   while (i < nums.size()-1 && j < nums.size()) {
  20.     if (nums[i]) ++i;
  21.     else if (!nums[j = i+1]) ++j;
  22.     else swap(nums[i++], nums[j++]);
  23.   }
  24. }
复制代码
回复

使用道具 举报

🔗
zzgzzm 2017-8-5 09:34:37 | 只看该作者
全局:
  1.     string addBinary(string a, string b) {
  2.         string s;
  3.         auto i = a.rbegin(), j = b.rbegin();
  4.         int carry = 0;
  5.         while (i < a.rend() || j < b.rend() || carry) {
  6.             int sum = carry;
  7.             sum += (i < a.rend())? *i-'0' : 0;
  8.             sum += (j < b.rend())? *j-'0' : 0;
  9.             s += sum%2 + '0';
  10.             carry = sum/2;
  11.             i++, j++;
  12.         }
  13.         reverse(s.begin(), s.end());
  14.         return s;
  15.     }
复制代码
回复

使用道具 举报

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

本版积分规则

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