File tree Expand file tree Collapse file tree 7 files changed +193
-54
lines changed
solution/0000-0099/0066.Plus One Expand file tree Collapse file tree 7 files changed +193
-54
lines changed Original file line number Diff line number Diff line change 4646 <li><code>0 <= digits[i] <= 9</code></li>
4747</ul >
4848
49-
5049## 解法
5150
5251<!-- 这里可写通用的实现逻辑 -->
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### ** ...**
Original file line number Diff line number Diff line change 4242 <li><code>0 <= digits[i] <= 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### ** ...**
Original file line number Diff line number Diff line change 11class Solution {
22public:
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 number Diff line number Diff line change 11func 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+ }
Original file line number Diff line number Diff line change 11class 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 }
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+ }
912 }
1013 digits . unshift ( 1 ) ;
1114 return digits ;
12- } ;
15+ } ;
Original file line number Diff line number Diff line change 11class 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
You can’t perform that action at this time.
0 commit comments