您的位置:首页 > 其它

算法题:从数组找数字(网易2017校园招聘)

2017-10-16 14:50 197 查看
给定一个数组,除了一个数出现 1 次之外,其余数都出现 3 次。找出出现一次的数。如:{1,
2, 1, 2, 1, 2, 7}, 找出 7。

格式:

第一行输入一个数n,代表数组的长度,接下来一行输入数组A
,(输入的数组必须满足问题描述的要求),最后输出只出现一次的数。

要求:

你的算法只能是线性时间的复杂度,并且不能使用额外的空间哦~

样例输入

4

0 0 0 5

样例输出

5

public static int search(int n, int[] arr) {
int a = 0, b = 0;
for (int i = 0; i < n; i++) {
b = a & (b ^ arr[i]);
a = b | (a ^ arr[i]);
}
return a;
}

给定一个数组,除了一个数出现 1 次之外,其余数都出现 3 次。找出出现一次的数。如:{1,
2, 1, 2, 1, 2, 7}, 找出 7。

格式:

第一行输入一个数n,代表数组的长度,接下来一行输入数组A
,(输入的数组必须满足问题描述的要求),最后输出只出现一次的数。

要求:

你的算法只能是线性时间的复杂度,并且不能使用额外的空间哦~

样例输入

4

0 0 0 5

样例输出

5

请通过评论说出你的解答。如果有必要,请介绍一下解题思路。在评论中分享解题思路可以让其他人了解你的想法。你的解答帮助了其他人,其他人的解答也将帮助到你。期待大家参与 ^_^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: