File tree 7 files changed +193
-54
lines changed
solution/0000-0099/0066.Plus One
7 files changed +193
-54
lines changed Original file line number Diff line number Diff line change 46
46
<li><code>0 <= digits[i] <= 9</code></li>
47
47
</ul >
48
48
49
-
50
49
## 解法
51
50
52
51
<!-- 这里可写通用的实现逻辑 -->
58
57
<!-- 这里可写当前语言的特殊实现逻辑 -->
59
58
60
59
``` 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
62
69
```
63
70
64
71
### ** Java**
65
72
66
73
<!-- 这里可写当前语言的特殊实现逻辑 -->
67
74
68
75
``` 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
+ ```
69
130
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
+ }
70
145
```
71
146
72
147
### ** ...**
Original file line number Diff line number Diff line change 42
42
<li><code>0 <= digits[i] <= 9</code></li>
43
43
</ul >
44
44
45
-
46
45
## Solutions
47
46
48
47
<!-- tabs:start -->
49
48
50
49
### ** Python3**
51
50
52
51
``` 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
54
61
```
55
62
56
63
### ** Java**
57
64
58
65
``` 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
+ ```
59
120
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
+ }
60
135
```
61
136
62
137
### ** ...**
Original file line number Diff line number Diff line change 1
1
class Solution {
2
2
public:
3
3
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];
10
7
digits[i] %= 10 ;
8
+ if (digits[i] != 0 ) return digits;
11
9
}
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 );
17
11
return digits;
18
12
}
19
13
};
Original file line number Diff line number Diff line change 1
1
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 {
5
7
return digits
6
8
}
7
9
}
8
- ret := make ([]int , len (digits )+ 1 )
9
- ret [0 ] = 1
10
- return ret
11
- }
10
+ return append ([]int {1 }, digits ... )
11
+ }
Original file line number Diff line number Diff line change 1
1
class Solution {
2
2
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
+ }
7
10
}
8
- digits = new int [digits . length + 1 ];
11
+ digits = new int [n + 1 ];
9
12
digits [0 ] = 1 ;
10
13
return digits ;
11
14
}
Original file line number Diff line number Diff line change 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
+ }
9
12
}
10
13
digits . unshift ( 1 ) ;
11
14
return digits ;
12
- } ;
15
+ } ;
Original file line number Diff line number Diff line change 1
1
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 ):
14
5
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
You can’t perform that action at this time.
0 commit comments