【LeetCode】Plus One

Given a number represented as an array of digits, plus one to the number.

hint : 类似于字符串模拟加减法的思路:

 

class Solution {
public:
    vector<int> plusOne(vector<int> &digits) {
        // Note: The Solution object is instantiated only once and is reused by each test case.
        vector<int> res;
        if(digits.size() == 0)
            return res;
        int carry = 1;
        int sum ;
        for(int i = digits.size() - 1; i >=0; i--)
        {
            sum = carry + digits[i];
            carry = sum / 10;
            sum %= 10;
            res.push_back(sum);
        }
        if(carry == 1)
            res.push_back(1);
        reverse(res.begin(),res.end());
        return res;
    }
};


java什么的:

 

 

public class Solution {
    public int[] plusOne(int[] digits) {
        // Note: The Solution object is instantiated only once and is reused by each test case.
        int len = digits.length;
        for(int i = len-1; i >= 0; i--)
        {
            if(digits[i] != 9)
            {
                digits[i]++;
                return digits;
            }
            else digits[i] = 0;
        }
        
        int[] res = new int[len+1];
        res[0] = 1;
        return res;
            
    }
}


 

 

posted on 2013-10-15 08:53  新一  阅读(166)  评论(0)    收藏  举报

导航