leetcode—Plus one

时间:2024-10-27 16:35:38

 

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;

        

    }

};