一亩三分地论坛

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

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

Bloomberg电面

[复制链接] |试试Instant~ |关注本帖
paoptu023 发表于 2016-9-22 05:42:11 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 硕士 全职@Bloomberg - 内推 - 技术电面 |Otherfresh grad应届毕业生

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

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

x
一开始聊了大概10几分钟简历,然后出了两题

1. Leetcode268 Missing Number变形
给一个size N的数组,数字是0 - N-1, 有一个missing number和一个duplicated number,找到重复的那个数。最简单的是用hashmap,在不用extra memory的限制上,用sort是O(nlgn)复杂度,面试官问有没有O(n)的解法。一开始想的是用XOR,后来发现不行,在提示下写出来了,遍历数组,while nums != i, swap(nums, nums[nums]),直到nums等于i的时候return i

2. Leetcode23 Merge k Sorted Lists

评分

3

查看全部评分

msxqc 发表于 2016-9-22 12:48:46 | 显示全部楼层
    public int findDup(int[] nums){-google 1point3acres
        int n = nums.length;
        int i = 0; . from: 1point3acres.com/bbs
        while(i < n){
            while(nums[i] != i){
                if(nums[nums[i]] == nums[i]){//find the duplicated!
                    return nums[i];
                }else{
                    swap(nums, nums[i], i);.鐣欏璁哄潧-涓浜-涓夊垎鍦
                }
            }
            i++;
        }. more info on 1point3acres.com
        return -1;
    }
    private void swap(int[] a, int i, int j){
        int t=a[i];
        a[i] = a[j];
        a[j] =t;
    }

评分

2

查看全部评分

回复 支持 1 反对 0

使用道具 举报

rexue70 发表于 2016-9-22 06:16:27 | 显示全部楼层
first missing positive?
回复 支持 1 反对 0

使用道具 举报

aideny 发表于 2016-9-22 10:56:54 | 显示全部楼层
肯定要有一个number missing, 要不然就没有位置放这个重复的元素.
用的就是Leetcode 41 First Missing Positive  的解法.O(N)时间, O(1)空间
回复 支持 1 反对 0

使用道具 举报

wtcupup 发表于 2016-9-22 05:56:05 | 显示全部楼层
如何利用有一个missing number 这个条件呢?
回复 支持 反对

使用道具 举报

WTYJack 发表于 2016-9-22 06:18:44 | 显示全部楼层
同想问missing number有什么作用?duplicated number是可以重复任意次么,还是只有两个?
回复 支持 反对

使用道具 举报

 楼主| paoptu023 发表于 2016-9-22 07:05:17 | 显示全部楼层
WTYJack 发表于 2016-9-22 06:18
同想问missing number有什么作用?duplicated number是可以重复任意次么,还是只有两个?

只有两个一样的数,missing number其实没用,只是有一个重复的,有一个少的,这样数组的大小还是一样
回复 支持 反对

使用道具 举报

WTYJack 发表于 2016-9-22 07:21:19 | 显示全部楼层
paoptu023 发表于 2016-9-22 07:05
只有两个一样的数,missing number其实没用,只是有一个重复的,有一个少的,这样数组的大小还是一样
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
是不是有点儿像LeetCode 287?但是还是不太清楚LZ那个解法的i和nums是啥?
回复 支持 反对

使用道具 举报

bananapancake 发表于 2016-9-22 11:32:53 | 显示全部楼层
rexue70 发表于 2016-9-22 06:16
first missing positive?

看起来和这道leetcode上的最像。基本意思应该是每次把这个数换到与本身值相等的index上,但是这道题让你找那个duplicate,好像有问题的啊?
回复 支持 反对

使用道具 举报

WTYJack 发表于 2016-9-23 03:21:01 | 显示全部楼层
msxqc 发表于 2016-9-22 12:48
public int findDup(int[] nums){
        int n = nums.length;.1point3acres缃
        int i = 0;

好赞!多谢~
回复 支持 反对

使用道具 举报

xuqicx23 发表于 2016-9-23 10:24:46 | 显示全部楼层
  public static int findDup(int[] input) {
        if (input == null || input.length == 0) {
            return 0;
        }
        for (int i = 0; i < input.length; i++) {. 鍥磋鎴戜滑@1point 3 acres
            while (input[i] != i) {
                if (input[input[i]] == input[i]) {
                    return input[i];
                } else {
                    swap(input, i, input[i]);
                }
            }
        }
        return -1;
    }
    public static void swap(int[] arr, int l, int r) {
        int temp = arr[l];. 1point3acres.com/bbs
        arr[l] = arr[r];
        arr[r] = temp;
    }
回复 支持 反对

使用道具 举报

何打发123 发表于 2016-9-25 07:14:58 | 显示全部楼层
感谢楼主分享~ 不过我有一个疑问~ 就是如果这题 改成 有k个missing number和k个duplicated number (k <= n) 做法还是一样的对吗?~
回复 支持 反对

使用道具 举报

iPhD 发表于 2016-9-25 08:04:06 | 显示全部楼层
这题是LC 287. Find the Duplicate Number嘛?可以不可以用Linked List找cycle的方法吗?还是要用LC 41不停swap的方法做?
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-8 05:36

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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