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;
        
    }
};
posted @ 2013-08-27 11:54  曾见绝美的阳光  阅读(343)  评论(0编辑  收藏  举报