Skip to content

Commit 72bcb2a

Browse files
committed
add: Single Number II
1 parent ac871eb commit 72bcb2a

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ This is the solutions collection of my LeetCode submissions, most of them are pr
4343
|130|[Surrounded Regions](https://leetcode.com/problems/surrounded-regions/) | [JavaScript](./src/surrounded-regions/res.js)|Medium|
4444
|133|[Clone Graph](https://leetcode.com/problems/clone-graph/) | [JavaScript](./src/clone-graph/res.js)|Medium|
4545
|136|[Single Number](https://leetcode.com/problems/single-number/) | [JavaScript](./src/single-number/res.js)|Easy|
46+
|137|[Single Number II](https://leetcode.com/problems/single-number-ii/) | [JavaScript](./src/single-number-ii/res.js)|Medium|
4647
|151|[Reverse Words in a String](https://leetcode.com/problems/reverse-words-in-a-string/) | [JavaScript](./src/reverse-words-in-a-string/res.js)|Medium|
4748
|152|[Maximum Product Subarray](https://leetcode.com/problems/maximum-product-subarray/) | [JavaScript](./src/maximum-product-subarray/res.js)|Medium|
4849
|165|[Compare Version Numbers](https://leetcode.com/problems/compare-version-numbers/) | [JavaScript](./src/compare-version-numbers/res.js)|Medium|

src/single-number-ii/res.js

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/**
2+
* res.js
3+
* @authors Joe Jiang ([email protected])
4+
* @date 2017-05-22 22:23:17
5+
* @version $Id$
6+
*/
7+
8+
/**
9+
* Solution 1: https://discuss.leetcode.com/topic/43166/java-o-n-easy-to-understand-solution-easily-extended-to-any-times-of-occurance
10+
* Solution 2: https://discuss.leetcode.com/topic/2031/challenge-me-thx/5
11+
* Solution 3: https://discuss.leetcode.com/topic/2926/accepted-code-with-proper-explaination-does-anyone-have-a-better-idea/4
12+
* @param {number[]} nums
13+
* @return {number}
14+
*/
15+
let singleNumber = function(nums) {
16+
let len = nums.length,
17+
ans = 0;
18+
19+
for (let i = 0; i < 32; i++) {
20+
let tmp = 0;
21+
22+
for (let j = 0; j < len; j++) {
23+
if ((nums[j] >> i) & 1 === 1) {
24+
tmp++;
25+
}
26+
}
27+
28+
tmp %= 3;
29+
if (tmp) {
30+
ans |= tmp << i;
31+
}
32+
}
33+
34+
return ans;
35+
};
36+
37+
// let singleNumber = function(nums) {
38+
// let ones = 0, twos = 0;
39+
// for(let i = 0; i < nums.length; i++){
40+
// ones = (ones ^ nums[i]) & ~twos;
41+
// twos = (twos ^ nums[i]) & ~ones;
42+
// }
43+
// return ones;
44+
// };

0 commit comments

Comments
 (0)