class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
for(int i=digits.size()-1;i>=0;i--)
{
++digits[i];
if(digits[i]!=10) //如果该位没有继续产生进位,则直接return 结果
return digits;
else
digits[i]=0; //进位
}
digits.insert(digits.begin(), 1); //如果首位也产生进位,才会执行到这条语句,否则循环中已经return了
return digits;
}
};
作者:zrita
链接:https://leetcode-cn.com/problems/plus-one/solution/c-z-by-zrita/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
测试代码
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
#include<map>
#include<unordered_set>
#include<stack>
#include<cmath>
using namespace std;
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
for (int i = digits.size() - 1; i >= 0; i--)
{
++digits[i];
if (digits[i] != 10) //如果该位没有继续产生进位,则直接return 结果
return digits;
else
digits[i] = 0; //进位
}
digits.insert(digits.begin(), 1); //如果首位也产生进位,才会执行到这条语句,否则循环中已经return了
return digits;
}
};
int main()
{
string s = "oraaaaaaaaaaay";
vector<int> num = { 9, 9, 9, 9};
Solution a;
a.plusOne(num);
int i = 1;
system("pause");
return 0;
}