leetcode—Plus one

 

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() function
        if(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;
        
    }
};

你可能感兴趣的:(LeetCode)