Skip to content

Commit 8adb831

Browse files
committed
feat: update solutions to lc problem: No.0066.Plus One
1 parent c2f2654 commit 8adb831

File tree

7 files changed

+193
-54
lines changed

7 files changed

+193
-54
lines changed

solution/0000-0099/0066.Plus One/README.md

+77-2
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
<li><code>0 <= digits[i] <= 9</code></li>
4747
</ul>
4848

49-
5049
## 解法
5150

5251
<!-- 这里可写通用的实现逻辑 -->
@@ -58,15 +57,91 @@
5857
<!-- 这里可写当前语言的特殊实现逻辑 -->
5958

6059
```python
61-
60+
class Solution:
61+
def plusOne(self, digits: List[int]) -> List[int]:
62+
n = len(digits)
63+
for i in range(n - 1, -1 , -1):
64+
digits[i] += 1
65+
digits[i] %= 10
66+
if digits[i] != 0:
67+
return digits
68+
return [1] + digits
6269
```
6370

6471
### **Java**
6572

6673
<!-- 这里可写当前语言的特殊实现逻辑 -->
6774

6875
```java
76+
class Solution {
77+
public int[] plusOne(int[] digits) {
78+
int n = digits.length;
79+
for (int i = n - 1; i >= 0; --i) {
80+
++digits[i];
81+
digits[i] %= 10;
82+
if (digits[i] != 0) {
83+
return digits;
84+
}
85+
}
86+
digits = new int[n + 1];
87+
digits[0] = 1;
88+
return digits;
89+
}
90+
}
91+
```
92+
93+
### **JavaScript**
94+
95+
```js
96+
/**
97+
* @param {number[]} digits
98+
* @return {number[]}
99+
*/
100+
var plusOne = function(digits) {
101+
for (let i = digits.length - 1; i >= 0; --i) {
102+
++digits[i];
103+
digits[i] %= 10;
104+
if (digits[i] != 0) {
105+
return digits;
106+
}
107+
}
108+
digits.unshift(1);
109+
return digits;
110+
};
111+
```
112+
113+
### **C++**
114+
115+
```cpp
116+
class Solution {
117+
public:
118+
vector<int> plusOne(vector<int>& digits) {
119+
int n = digits.size();
120+
for (int i = n - 1; i >= 0; --i) {
121+
++digits[i];
122+
digits[i] %= 10;
123+
if (digits[i] != 0) return digits;
124+
}
125+
digits.insert(digits.begin(), 1);
126+
return digits;
127+
}
128+
};
129+
```
69130
131+
### **Go**
132+
133+
```go
134+
func plusOne(digits []int) []int {
135+
n := len(digits)
136+
for i := n - 1; i >= 0; i-- {
137+
digits[i]++
138+
digits[i] %= 10
139+
if digits[i] != 0 {
140+
return digits
141+
}
142+
}
143+
return append([]int{1}, digits...)
144+
}
70145
```
71146

72147
### **...**

solution/0000-0099/0066.Plus One/README_EN.md

+77-2
Original file line numberDiff line numberDiff line change
@@ -42,21 +42,96 @@
4242
<li><code>0 &lt;= digits[i] &lt;= 9</code></li>
4343
</ul>
4444

45-
4645
## Solutions
4746

4847
<!-- tabs:start -->
4948

5049
### **Python3**
5150

5251
```python
53-
52+
class Solution:
53+
def plusOne(self, digits: List[int]) -> List[int]:
54+
n = len(digits)
55+
for i in range(n - 1, -1 , -1):
56+
digits[i] += 1
57+
digits[i] %= 10
58+
if digits[i] != 0:
59+
return digits
60+
return [1] + digits
5461
```
5562

5663
### **Java**
5764

5865
```java
66+
class Solution {
67+
public int[] plusOne(int[] digits) {
68+
int n = digits.length;
69+
for (int i = n - 1; i >= 0; --i) {
70+
++digits[i];
71+
digits[i] %= 10;
72+
if (digits[i] != 0) {
73+
return digits;
74+
}
75+
}
76+
digits = new int[n + 1];
77+
digits[0] = 1;
78+
return digits;
79+
}
80+
}
81+
```
82+
83+
### **JavaScript**
84+
85+
```js
86+
/**
87+
* @param {number[]} digits
88+
* @return {number[]}
89+
*/
90+
var plusOne = function(digits) {
91+
for (let i = digits.length - 1; i >= 0; --i) {
92+
++digits[i];
93+
digits[i] %= 10;
94+
if (digits[i] != 0) {
95+
return digits;
96+
}
97+
}
98+
digits.unshift(1);
99+
return digits;
100+
};
101+
```
102+
103+
### **C++**
104+
105+
```cpp
106+
class Solution {
107+
public:
108+
vector<int> plusOne(vector<int>& digits) {
109+
int n = digits.size();
110+
for (int i = n - 1; i >= 0; --i) {
111+
++digits[i];
112+
digits[i] %= 10;
113+
if (digits[i] != 0) return digits;
114+
}
115+
digits.insert(digits.begin(), 1);
116+
return digits;
117+
}
118+
};
119+
```
59120
121+
### **Go**
122+
123+
```go
124+
func plusOne(digits []int) []int {
125+
n := len(digits)
126+
for i := n - 1; i >= 0; i-- {
127+
digits[i]++
128+
digits[i] %= 10
129+
if digits[i] != 0 {
130+
return digits
131+
}
132+
}
133+
return append([]int{1}, digits...)
134+
}
60135
```
61136

62137
### **...**
+5-11
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
11
class Solution {
22
public:
33
vector<int> plusOne(vector<int>& digits) {
4-
int len = digits.size();
5-
if(len == 0)return digits;
6-
digits[len-1]++;
7-
int num = digits[len - 1];
8-
for(int i = len - 1;i>=1;i--){
9-
digits[i-1] = digits[i-1] + digits[i]/10;
4+
int n = digits.size();
5+
for (int i = n - 1; i >= 0; --i) {
6+
++digits[i];
107
digits[i] %= 10;
8+
if (digits[i] != 0) return digits;
119
}
12-
13-
if(digits[0] >= 10){
14-
digits.insert(digits.begin(),digits[0]/10);
15-
digits[1] = digits[1] % 10;
16-
}
10+
digits.insert(digits.begin(), 1);
1711
return digits;
1812
}
1913
};
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
func plusOne(digits []int) []int {
2-
for right := len(digits) - 1; right >= 0; right-- {
3-
digits[right] = (digits[right] + 1) % 10
4-
if digits[right] != 0 {
2+
n := len(digits)
3+
for i := n - 1; i >= 0; i-- {
4+
digits[i]++
5+
digits[i] %= 10
6+
if digits[i] != 0 {
57
return digits
68
}
79
}
8-
ret := make([]int, len(digits)+1)
9-
ret[0] = 1
10-
return ret
11-
}
10+
return append([]int{1}, digits...)
11+
}

solution/0000-0099/0066.Plus One/Solution.java

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
class Solution {
22
public int[] plusOne(int[] digits) {
3-
for (int i = digits.length - 1; i >= 0; i --) {
4-
digits[i] ++;
5-
digits[i] = digits[i] % 10;
6-
if (digits[i] != 0) return digits;
3+
int n = digits.length;
4+
for (int i = n - 1; i >= 0; --i) {
5+
++digits[i];
6+
digits[i] %= 10;
7+
if (digits[i] != 0) {
8+
return digits;
9+
}
710
}
8-
digits = new int[digits.length + 1];
11+
digits = new int[n + 1];
912
digits[0] = 1;
1013
return digits;
1114
}
+12-9
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1-
const plusOne = function (digits) {
2-
for (let i = digits.length - 1; i >= 0; i--) {
3-
if (digits[i] === 9) {
4-
digits[i] = 0;
5-
} else {
6-
digits[i] += 1;
7-
return digits;
8-
}
1+
/**
2+
* @param {number[]} digits
3+
* @return {number[]}
4+
*/
5+
var plusOne = function(digits) {
6+
for (let i = digits.length - 1; i >= 0; --i) {
7+
++digits[i];
8+
digits[i] %= 10;
9+
if (digits[i] != 0) {
10+
return digits;
11+
}
912
}
1013
digits.unshift(1);
1114
return digits;
12-
};
15+
};
+7-18
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,9 @@
11
class Solution:
2-
def plusOne(self, digits):
3-
"""
4-
:type digits: List[int]
5-
:rtype: List[int]
6-
"""
7-
8-
i = len(digits)-1
9-
digits[i] += 1
10-
11-
while i > 0 and digits[i] > 9 :
12-
digits[i] = 0
13-
i -= 1
2+
def plusOne(self, digits: List[int]) -> List[int]:
3+
n = len(digits)
4+
for i in range(n - 1, -1, -1):
145
digits[i] += 1
15-
16-
if digits[0] > 9:
17-
digits[0] = 0
18-
digits.insert(0, 1)
19-
20-
return digits
6+
digits[i] %= 10
7+
if digits[i] != 0:
8+
return digits
9+
return [1] + digits

0 commit comments

Comments
 (0)