Leetcode66. 加一
思路:模拟
先把数组翻转,因为整个数组长度很小,可以直接模拟,特判一下最后一位如果有进位我们在数组最后面插入一个1就可以
class Solution {
public:
vector<int> plusOne(vector<int>& nums) {
reverse(nums.begin(), nums.end());
nums[0] ++ ;
int t = 0;
int n = nums.size();
for (int i = 0; i < nums.size(); i ++ ) {
int u = nums[i] + t;
if (u >= 10) {
t = 1;
nums[i] = u % 10;
}
else nums[i] = u, t = 0;
}
if (t >= 1) nums.push_back(1);
reverse(nums.begin(), nums.end());
return nums;
}
};