Skip to content

Commit ff5dcfe

Browse files
committedMay 2, 2021
feat: update leetcode/lcci solutions
* lcci No. 17.04. Missing Number * leetcode No. 0136.Single Number
1 parent b7c6b0d commit ff5dcfe

File tree

12 files changed

+98
-30
lines changed

12 files changed

+98
-30
lines changed
 

‎lcci/17.04.Missing Number/README.md

+19-8
Original file line numberDiff line numberDiff 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
5351
class 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
```

‎lcci/17.04.Missing Number/README_EN.md

+19-8
Original file line numberDiff line numberDiff 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
5149
class 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
```
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
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+
};
+3-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
class 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
}

‎lcci/17.04.Missing Number/Solution.py

+1-3
Original file line numberDiff line numberDiff 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

‎solution/0100-0199/0136.Single Number/README.md

+15
Original file line numberDiff line numberDiff 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
```

‎solution/0100-0199/0136.Single Number/README_EN.md

+15
Original file line numberDiff line numberDiff 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 numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
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+
};

‎solution/0100-0199/0137.Single Number II/README.md

+2-2
Original file line numberDiff line numberDiff 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 ^ 0xffffffff)
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;

‎solution/0100-0199/0137.Single Number II/README_EN.md

+2-2
Original file line numberDiff line numberDiff 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 ^ 0xffffffff)
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;

‎solution/0100-0199/0137.Single Number II/Solution.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public int singleNumber(int[] nums) {
1111
int res = 0;
1212
for (int i = 0; i < 32; ++i) {
1313
if (bits[i] % 3 == 1) {
14-
res += (1 << i);
14+
res |= (1 << i);
1515
}
1616
}
1717
return res;

‎solution/0100-0199/0137.Single Number II/Solution.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ def singleNumber(self, nums: List[int]) -> int:
88
res = 0
99
for i in range(32):
1010
if bits[i] % 3 != 0:
11-
res += (1 << i)
11+
res |= (1 << i)
1212
return res if bits[31] % 3 == 0 else ~(res ^ 0xffffffff)

0 commit comments

Comments
 (0)