Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ae4995a

Browse files
committed
fix: update solutions to lcof problem and leetcode problem
1 parent 288cece commit ae4995a

File tree

6 files changed

+53
-15
lines changed

6 files changed

+53
-15
lines changed

‎lcof/面试题56 - II. 数组中数字出现的次数 II/README.md‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323
- `1 <= nums[i] < 2^31`
2424

2525
## 解法
26+
27+
统计所有数字每个位中 1 出现的次数,对于某个位,1 出现的次数一定是 3 的倍数 +1 或 0。对这个数 %3 得到的结果就是那个出现一次的数字在该位上的值。
28+
29+
2630
<!-- tabs:start -->
2731

2832
### **Python3**
@@ -34,11 +38,10 @@ class Solution:
3438
for i in range(32):
3539
bits[i] += (num & 1)
3640
num >>= 1
37-
3841
res = 0
3942
for i in range(32):
4043
if bits[i] % 3 == 1:
41-
res += pow(2, i)
44+
res += (1<< i)
4245
return res
4346
```
4447

@@ -56,7 +59,7 @@ class Solution {
5659
int res = 0;
5760
for (int i = 0; i < 32; ++i) {
5861
if (bits[i] % 3 == 1) {
59-
res += (int) Math.pow(2, i);
62+
res += (1<< i);
6063
}
6164
}
6265
return res;

‎lcof/面试题56 - II. 数组中数字出现的次数 II/Solution.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public int singleNumber(int[] nums) {
1010
int res = 0;
1111
for (int i = 0; i < 32; ++i) {
1212
if (bits[i] % 3 == 1) {
13-
res += (int) Math.pow(2, i);
13+
res += (1 << i);
1414
}
1515
}
1616
return res;

‎lcof/面试题56 - II. 数组中数字出现的次数 II/Solution.py‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@ def singleNumber(self, nums: List[int]) -> int:
55
for i in range(32):
66
bits[i] += (num & 1)
77
num >>= 1
8-
98
res = 0
109
for i in range(32):
1110
if bits[i] % 3 == 1:
12-
res += pow(2, i)
11+
res += (1<< i)
1312
return res

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

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
## 解法
2727
<!-- 这里可写通用的实现逻辑 -->
2828

29+
统计所有数字每个位中 1 出现的次数,对于某个位,1 出现的次数一定是 3 的倍数 +1 或 0。对这个数 %3 得到的结果就是那个出现一次的数字在该位上的值。
2930

3031
<!-- tabs:start -->
3132

@@ -40,7 +41,25 @@
4041
<!-- 这里可写当前语言的特殊实现逻辑 -->
4142

4243
```java
43-
44+
class Solution {
45+
public int singleNumber(int[] nums) {
46+
int[] bits = new int[32];
47+
for (int num : nums) {
48+
for (int i = 0; i < 32; ++i) {
49+
bits[i] += (num & 1);
50+
num >>= 1;
51+
}
52+
}
53+
54+
int res = 0;
55+
for (int i = 0; i < 32; ++i) {
56+
if (bits[i] % 3 == 1) {
57+
res += (1 << i);
58+
}
59+
}
60+
return res;
61+
}
62+
}
4463
```
4564

4665
### **...**

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

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,25 @@
5656
### **Java**
5757

5858
```java
59-
59+
class Solution {
60+
public int singleNumber(int[] nums) {
61+
int[] bits = new int[32];
62+
for (int num : nums) {
63+
for (int i = 0; i < 32; ++i) {
64+
bits[i] += (num & 1);
65+
num >>= 1;
66+
}
67+
}
68+
69+
int res = 0;
70+
for (int i = 0; i < 32; ++i) {
71+
if (bits[i] % 3 == 1) {
72+
res += (1 << i);
73+
}
74+
}
75+
return res;
76+
}
77+
}
6078
```
6179

6280
### **...**
Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
class Solution {
22
public int singleNumber(int[] nums) {
33
int[] bits = new int[32];
4-
int n = nums.length;
5-
for (int i = 0; i < n; ++i) {
6-
for (intj = 0; j < 32; ++j) {
7-
bits[j] += ((nums[i] >> j) & 1);
4+
for (int num : nums) {
5+
for (int i = 0; i < 32; ++i) {
6+
bits[i] += (num & 1);
7+
num >>= 1;
88
}
99
}
10-
10+
1111
int res = 0;
1212
for (int i = 0; i < 32; ++i) {
13-
if (bits[i] % 3 != 0) {
13+
if (bits[i] % 3 == 1) {
1414
res += (1 << i);
1515
}
1616
}
1717
return res;
18-
1918
}
2019
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /