File tree Expand file tree Collapse file tree 12 files changed +98
-30
lines changed
lcci/17.04.Missing Number Expand file tree Collapse file tree 12 files changed +98
-30
lines changed Original file line number Diff line number Diff line change @@ -39,9 +39,7 @@ class Solution:
3939 def missingNumber (self , nums : List[int ]) -> int :
4040 res = 0
4141 for i, num in enumerate (nums):
42- res ^= i
43- res ^= num
44- res ^= len (nums)
42+ res = res ^ num ^ (i + 1 )
4543 return res
4644```
4745
@@ -52,12 +50,10 @@ class Solution:
5250``` java
5351class Solution {
5452 public int missingNumber (int [] nums ) {
55- int res = 0 , n = nums. length;
56- for (int i = 0 ; i < n; ++ i) {
57- res ^ = i;
58- res ^ = nums[i];
53+ int res = 0 ;
54+ for (int i = 0 ; i < nums. length; ++ i) {
55+ res = res ^ nums[i] ^ (i + 1 );
5956 }
60- res ^ = n;
6157 return res;
6258 }
6359}
@@ -79,6 +75,21 @@ var missingNumber = function(nums) {
7975};
8076```
8177
78+ ### ** C++**
79+
80+ ``` cpp
81+ class Solution {
82+ public:
83+ int missingNumber(vector<int >& nums) {
84+ int res = 0;
85+ for (int i = 0; i < nums.size(); ++i) {
86+ res = res ^ nums[ i] ^ (i + 1);
87+ }
88+ return res;
89+ }
90+ };
91+ ```
92+
8293### **...**
8394
8495```
Original file line number Diff line number Diff line change @@ -39,9 +39,7 @@ class Solution:
3939 def missingNumber (self , nums : List[int ]) -> int :
4040 res = 0
4141 for i, num in enumerate (nums):
42- res ^= i
43- res ^= num
44- res ^= len (nums)
42+ res = res ^ num ^ (i + 1 )
4543 return res
4644```
4745
@@ -50,12 +48,10 @@ class Solution:
5048``` java
5149class Solution {
5250 public int missingNumber (int [] nums ) {
53- int res = 0 , n = nums. length;
54- for (int i = 0 ; i < n; ++ i) {
55- res ^ = i;
56- res ^ = nums[i];
51+ int res = 0 ;
52+ for (int i = 0 ; i < nums. length; ++ i) {
53+ res = res ^ nums[i] ^ (i + 1 );
5754 }
58- res ^ = n;
5955 return res;
6056 }
6157}
@@ -77,6 +73,21 @@ var missingNumber = function(nums) {
7773};
7874```
7975
76+ ### ** C++**
77+
78+ ``` cpp
79+ class Solution {
80+ public:
81+ int missingNumber(vector<int >& nums) {
82+ int res = 0;
83+ for (int i = 0; i < nums.size(); ++i) {
84+ res = res ^ nums[ i] ^ (i + 1);
85+ }
86+ return res;
87+ }
88+ };
89+ ```
90+
8091### **...**
8192
8293```
Original file line number Diff line number Diff line change 1+ class Solution {
2+ public:
3+ int missingNumber (vector<int >& nums) {
4+ int res = 0 ;
5+ for (int i = 0 ; i < nums.size (); ++i) {
6+ res = res ^ nums[i] ^ (i + 1 );
7+ }
8+ return res;
9+ }
10+ };
Original file line number Diff line number Diff line change 11class Solution {
22 public int missingNumber (int [] nums ) {
3- int res = 0 , n = nums .length ;
4- for (int i = 0 ; i < n ; ++i ) {
5- res ^= i ;
6- res ^= nums [i ];
3+ int res = 0 ;
4+ for (int i = 0 ; i < nums .length ; ++i ) {
5+ res = res ^ nums [i ] ^ (i + 1 );
76 }
8- res ^= n ;
97 return res ;
108 }
119}
Original file line number Diff line number Diff line change @@ -2,7 +2,5 @@ class Solution:
22 def missingNumber (self , nums : List [int ]) -> int :
33 res = 0
44 for i , num in enumerate (nums ):
5- res ^= i
6- res ^= num
7- res ^= len (nums )
5+ res = res ^ num ^ (i + 1 )
86 return res
Original file line number Diff line number Diff line change @@ -91,6 +91,21 @@ func singleNumber(nums []int) int {
9191}
9292```
9393
94+ ### ** C++**
95+
96+ ``` cpp
97+ class Solution {
98+ public:
99+ int singleNumber(vector<int >& nums) {
100+ int res = 0;
101+ for (auto num : nums) {
102+ res ^= num;
103+ }
104+ return res;
105+ }
106+ };
107+ ```
108+
94109### **...**
95110
96111```
Original file line number Diff line number Diff line change @@ -86,6 +86,21 @@ func singleNumber(nums []int) int {
8686}
8787```
8888
89+ ### ** C++**
90+
91+ ``` cpp
92+ class Solution {
93+ public:
94+ int singleNumber(vector<int >& nums) {
95+ int res = 0;
96+ for (auto num : nums) {
97+ res ^= num;
98+ }
99+ return res;
100+ }
101+ };
102+ ```
103+
89104### **...**
90105
91106```
Original file line number Diff line number Diff line change 1+ class Solution {
2+ public:
3+ int singleNumber (vector<int >& nums) {
4+ int res = 0 ;
5+ for (auto num : nums) {
6+ res ^= num;
7+ }
8+ return res;
9+ }
10+ };
Original file line number Diff line number Diff line change @@ -62,7 +62,7 @@ class Solution:
6262 res = 0
6363 for i in range (32 ):
6464 if bits[i] % 3 != 0 :
65- res + = (1 << i)
65+ res | = (1 << i)
6666 # 如果为负数,先将 0-32 位取反(即 res ^ 0xffffffff ),再将所有位取反(即 ~ )
6767 return res if bits[31 ] % 3 == 0 else ~ (res ^ 0x ffffffff )
6868```
@@ -85,7 +85,7 @@ class Solution {
8585 int res = 0 ;
8686 for (int i = 0 ; i < 32 ; ++ i) {
8787 if (bits[i] % 3 == 1 ) {
88- res + = (1 << i);
88+ res | = (1 << i);
8989 }
9090 }
9191 return res;
Original file line number Diff line number Diff line change @@ -44,7 +44,7 @@ class Solution:
4444 res = 0
4545 for i in range (32 ):
4646 if bits[i] % 3 != 0 :
47- res + = (1 << i)
47+ res | = (1 << i)
4848 return res if bits[31 ] % 3 == 0 else ~ (res ^ 0x ffffffff )
4949```
5050
@@ -64,7 +64,7 @@ class Solution {
6464 int res = 0 ;
6565 for (int i = 0 ; i < 32 ; ++ i) {
6666 if (bits[i] % 3 == 1 ) {
67- res + = (1 << i);
67+ res | = (1 << i);
6868 }
6969 }
7070 return res;
You can’t perform that action at this time.
0 commit comments