您的位置:首页 > 其它

Week 15算法分析作业

2017-12-26 21:14 477 查看

Week 15算法分析作业

LeetCode题目 137. Single Number II

Given an array of integers, every element appears three times except for one, which appears exactly once. Find that single one.给定一个数组,除了一个元素外其余每个都出现3次,找出那个特例(要求在线性的时间内完成)

我的解法

复杂度O(N)

public int singleNumber(int[] nums) {
int ans = 0;
for(int i = 0; i < 32; i++) {
int sum = 0;
for(int j = 0; j < nums.length; j++) {
if(((nums[j] >> i) & 1) == 1) {
sum++;
sum %= 3;
}
}
if(sum != 0) {
ans |= sum << i;
}
}
return ans;
}


感想:

看起来很简单,主要的难度是要在线性时间内完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: