1.题目描述
Given a number represented as an array of digits, plus one to the number.
2.解法分析
不要被常规思路限制住,常规思路会遍历整个数组,然后设置进位,但是实际上只需要找到第一位不为9的数字即可,免去了加的必要。
class Solution {public:vector<int> plusOne(vector<int> &digits) {// Start typing your C/C++ solution below// DO NOT write int main() functionif(digits.empty())return digits;int len=digits.size();int i=len-1;while(i>=0){if(digits[i]==9)digits[i]=0;else{digits[i]+=1;break;}i--;}if(i<0)digits.insert(digits.begin(),1);return digits;}};