题目意思:vector<int> v存数 eg.123 则v[0]=1,v[1]=2,v[2]=3,加1后返回一个vector
思路:先判断新的vector长度是否需要加1,然后从vector最后一位开始往前进位
1 class Solution { 2 public: 3 vector plusOne(vector & digits) { 4 vector ans(digits.size()); 5 bool flag=true; 6 int add=1; 7 for(int i=digits.size()-1;i>=0;--i){ 8 if(digits[i]!=9){ 9 flag=false;10 break;11 }12 }13 if(flag){14 ans[0]=1;15 ans.push_back(0);16 }17 else{18 for(int j=digits.size()-1;j>=0;--j){19 ans[j]=(digits[j]+add)%10;20 add=(digits[j]+add)/10;21 }22 }23 return ans;24 }25 };
ps:这段时间要看的东西实在太多,机器学习,推荐算法,还有这个算法,实在是有点头疼。希望坚持下去是有效果的。