标签:补充 with syn ret for -- == one public
1 static int wing=[]() 2 { 3 std::ios::sync_with_stdio(false); 4 cin.tie(NULL); 5 return 0; 6 }(); 7 8 class Solution 9 { 10 public: 11 vector<int> plusOne(vector<int>& digits) 12 { 13 int sz=digits.size(); 14 for(int i=sz-1;i>=0;i--) 15 { 16 if(digits[i]==9) 17 digits[i]=0; 18 else 19 { 20 digits[i]+=1; 21 return digits; 22 } 23 } 24 digits[0]=1; 25 digits.push_back(0); 26 return digits; 27 } 28 };
以上是个人方法,也是大部队用的,从后向前扫,有9就置0,没9就加1后返回。如果for循环结束,说明全是9,这时候就要把第一位置1,并且在末尾补充0.
下面是大佬写法:
1 vector<int> plusOne(vector<int>& digits) { 2 for (int i=digits.size(); i--; digits[i] = 0) 3 if (digits[i]++ < 9) 4 return digits; 5 digits[0]++; 6 digits.push_back(0); 7 return digits; 8 }
原理和大众的一样,但是for循环用得相当6。
标签:补充 with syn ret for -- == one public
原文地址:https://www.cnblogs.com/zhuangbijingdeboke/p/8856689.html