题目意思: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<int> plusOne(vector<int>& digits) { 4 vector<int> 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:这段时间要看的东西实在太多,机器学习,推荐算法,还有这个算法,实在是有点头疼。希望坚持下去是有效果的。
时间: 2024-11-06 03:43:51