题目链接: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