File tree Expand file tree Collapse file tree 2 files changed +45
-0
lines changed
Expand file tree Collapse file tree 2 files changed +45
-0
lines changed Original file line number Diff line number Diff 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|
Original file line number Diff line number Diff line change 1+ /**
2+ * res.js
3+ * @authors Joe Jiang (hijiangtao@gmail.com)
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+ // };
You can’t perform that action at this time.
0 commit comments