首页 > 网易有道一面java
头像
offer多多~~~~
编辑于 2020-08-20 21:01
+ 关注

网易有道一面java

前面都是基础的问题,直接略过

代码题1.
给定数组arr,还有一个target,让你找出数组中两个数让他们的和等于target,找出所有的组合
开始说了排序+首尾指针(O(nlogn))
面试官问有O(n)的吗?
hash表实现,说了思路没让手撕

代码题2.
数组arr,一个树只出现了一次,其他的数出现了k次,求出这一个数
限定时间O(n),空间O(1)

统计二进制每一位的1的次数,最后的结果就是出现一次的数
后来自己有些了代码,贴上来

    public static int findTheOne(int[] arr,int k){
        int res = 0;
        int temp = 1;
        int max = Integer.MIN_VALUE;
        for (int i = 0; i < arr.length; i++) {
            max = Math.max(max,arr[i]);
        }
        int length = arr.length;
        while (max > 0){
            int sum = 0;
            for (int i = 0; i < length; i++) {
                if ((arr[i] & 1) == 1){
                    ++sum;
                }
                arr[i] = arr[i] >> 1;
            }
            if (sum % k == 1){
                res += temp;
            }
            temp = temp << 1;
            max = max >> 1;
        }
        return res;
    }

给了提示之后写了代码

更多模拟面试

全部评论

(3) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐