一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1282|回复: 4
收起左侧

twitter 电面两轮题目放松。

[复制链接] |试试Instant~ |关注本帖
aifer 发表于 2016-7-12 04:03:36 | 显示全部楼层 |阅读模式

2016(7-9月) 码农类 硕士 全职@Twitter - 网上海投 - 技术电面 |Failfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
面的是full stack engineer。两轮都是国人小哥。昨天2轮结束的,已挂。第一轮是给你一个数n, 让你计算出从1-n的时候,(0-9)每个数出现的次数。答得磕磕绊绊,不过还是感谢国人小哥给我过了进入第二轮的机会。
第二轮是给一个sorted array,找出出现频率最高的那个数,如果多个的话,返回任意一个即可。楼主给了hashmap和遍历数组的解法。小哥问有没有average case 优于linear,worst case better or equal linear的solution。
我想了一个binary search的方法,遍历数组第i个元素的时候,在右半数组里做binary search找到第一个与a不同的index。我个人感觉这种方法在average case情况下可以优于Linear,因为可以跳过一些重复元素。如果是worst case,即全部是distinct number的时候,复杂度会达到nlogn。跟小哥讨论了半天,也不给个hint。最后时间比较紧,就把之前遍历的O(N)solution写了一下。

总结:电面不难,国人何苦难为国人。


补充内容 (2016-7-12 04:03):
第二天收到拒信。
Urumic 发表于 2016-7-12 04:43:01 | 显示全部楼层
他家都没有new grad职位。楼主直接投的是需要经验的职位吗?
回复 支持 反对

使用道具 举报

 楼主| aifer 发表于 2016-7-12 05:13:21 | 显示全部楼层
Urumic 发表于 2016-7-12 04:43
他家都没有new grad职位。楼主直接投的是需要经验的职位吗?

很早之前投的,后来联系我的。是fullstack position
回复 支持 反对

使用道具 举报

jamesyin 发表于 2016-7-12 08:32:33 | 显示全部楼层
第二题感觉你的思路是正确的啊,除了binary search应该没有更好的了。我觉得细节方面可以优化一下,比如在binary search之前先看看下一个数是否相同,如果不相同,就不要binary search了,这样最坏情况就是O(n),平均情况比O(n)要好

        public int highestFrequence(int[] nums){
                int len = 1;
                int left = 0;
                while(left < nums.length - 1){
                        if(nums[left] != nums[left + 1]){
                                left++;
                                continue;
                        }else{
                                int right = binarySearch(nums, left, nums.length - 1);. 1point3acres.com/bbs
                                len = Math.max(right - left + 1, len);
                                left = right + 1;. visit 1point3acres.com for more.
                        }
                }
                return len;
        }
       
        public int binarySearch(int[] nums, int lo, int hi){-google 1point3acres
                if(lo == hi){
                        return lo;
                }. from: 1point3acres.com/bbs
                if(lo + 1 == hi){
                        return nums[lo] == nums[hi] ? hi : lo;
                }
                int target = nums[lo];
                while(lo + 1 < hi){
                        int mid = lo + (hi - lo) / 2;. 1point 3acres 璁哄潧
                        if(nums[mid] > target){ 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
                                hi = mid;
                        }else{
                                lo = mid;
                        }
                }.鐣欏璁哄潧-涓浜-涓夊垎鍦
                if(nums[hi] == target){. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
                        return hi;
                }else{
                        return lo;
                }
        }. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
回复 支持 反对

使用道具 举报

say543 发表于 2016-8-21 14:15:22 | 显示全部楼层
jamesyin 发表于 2016-7-12 08:32. 1point 3acres 璁哄潧
第二题感觉你的思路是正确的啊,除了binary search应该没有更好的了。我觉得细节方面可以优化一下,比如在b ...


upeer bound 不是1*logn + 1*logn-1...... log1 = o(nlogn)?
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-6 14:19

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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