原题链接
关键词 :数组 模拟法
解题思路:
此题为处理数组,数组特点 --数组下标 可以前后覆盖 数组元素可交换等。
此题分为三种情况
1.传入数为234形式 ,加一后无进位。直接在最后一个数组+1即可
2.传入数为239形式,即末尾数为9需要进位,末尾置为0,前一位+1
3.传入数为999形式,即各个位置都需要进位。此时需要将数组 array[0] 位置设置为1 在尾部push_back(0)
题解代码如下
#include<iostream>
#include<vector>
using namespace std;
class Solution {
public:vector<int> plusOne(vector<int>& digits) {int len = digits.size(); //计算传入数组元素的个数for (int i = len - 1; i >= 0; i--)//取最后一个元素开始处理{if (digits[i] == 9)digits[i] = 0;else{digits[i]++;//for循环至第二次再前处理前一个数return digits;}}digits[0] = 1;//当为9999的情况digits.push_back(0);//尾部加入0return digits;}
};