File tree Expand file tree Collapse file tree 1 file changed +15
-20
lines changed
Expand file tree Collapse file tree 1 file changed +15
-20
lines changed Original file line number Diff line number Diff line change @@ -3,28 +3,23 @@ class Solution {
33 vector<int > plusOne (vector<int >& digits) {
44 int size = digits.size ();
55 vector<int > ans;
6- if (size == 1 && digits[0 ] == 0 ) {
7- ans.push_back (1 );
8- return ans;
9- }
10-
11- long long raw = 0 , base = 1 ;
6+
7+ int flag = 1 ; // 是否需要进位
128 for (int i = size - 1 ; i >= 0 ; i--) {
13- raw += digits[i] * base;
14- if (i != 0 ) // 防止 base 溢出
15- base *= 10 ;
16- }
17- long long plusNum = raw + 1 ;
18- vector<int > digit2;
19- while (plusNum > 0 ) {
20- digit2.push_back (plusNum % 10 );
21- plusNum /= 10 ;
22- }
23-
24- for (int i = digit2.size () - 1 ; i >= 0 ; i--) {
25- ans.push_back (digit2[i]);
9+ if (flag == 1 ) {
10+ if (digits[i] + 1 > 10 ) {
11+ digits[i] = (digits[i] + 1 ) % 10 ;
12+ flag = 1 ;
13+ if (i == 0 ) {
14+ digits.insert (digits.begin (), 1 );
15+ }
16+ } else {
17+ digits[i] += 1 ;
18+ flag = 0 ;
19+ }
20+ }
2621 }
2722
28- return ans ;
23+ return digits ;
2924 }
3025};
You can’t perform that action at this time.
0 commit comments