NC227 只出现一次的数字(二)

  算法   2分钟   650浏览   0评论

题目链接:https://www.nowcoder.com/practice/85cb47fc0c6c483fab7e5cefab54d9e5

题目描述

给定一个整数数组,数组中有一个数出现了一次,其他数出现了三次,请找出只出现了一次的数。

数据范围:数组大小满足 1≤n≤105 ,数组中每个元素大小满足 -2^31 ≤ val ≤ 2^31−1

示例 1:

输入:[1]
返回值:1

示例 2:

输入:[1,2,2,2]
返回值:1

解题代码

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return int整型
     */
    public int singleNumber (int[] nums) {
        // write code here
        int[] t = new int[32];
        for (int num : nums) {
            for (int i = 0; i < 32; i++) {
                t[i] += (num >> i) & 1;
            }
        }
        int ans = 0;
        for (int i = 0; i < 32; i++) {
            if (t[i] % 3 == 1) {
                ans |= (1 << i);
            }
        }
        return ans;
    }
}

如果你觉得文章对你有帮助,那就请作者喝杯咖啡吧☕
微信
支付宝
  0 条评论