解题思路:
分三种情况即可解决问题:
数组中不含9 || 数组中含好几个9 || 数组中全为9
- 数组中不含9 ———— 直接将末尾元素+1即可;
- 数组中含好几个9 ———— 从后往前找,先找到最后一个不为0的数,将这个数+1,然后将后面的9全部置0;
- 数组中全为9 ———— 开辟一个新的数组空间,大小为size()+1,然后令第一个元素为0即可。
代码如下:
```CPP
#include
#include
using namespace std;
vector plusOne(vector &digits)
{
int n = digits.size();
for(int i = n - 1; i > 0; i--)
{
if(digits[i] != 9) //找到最后一个不为0的数组元素
{
digits[i]++; //这个元素值+1
for(int j = i + 1; j < n; j++)
{
digits[j] = 0; //把后面的元素都置0
}
return digits;
}
}
vector ans(n + 1);
ans[0] = 1;
return ans;
}
int main() {
vector nums1;
nums1.push_back(5);
nums1.push_back(3);
nums1.push_back(2);
nums1.push_back(6);
plusOne(nums1);
cout << "hello..." << endl;
return 0; }