leetcode[67] Plus One

题目:对一个用vector存的数字进行加1,然后返回加1后的值。

一次就在oj上通过了。

就是进位加上当前位如果大于9,那就当前位等于0;

随后进位还为1的话就是在数组前面插入一个1;

class Solution {
public:
    vector<int> plusOne(vector<int> &digits) 
    {
        int up = 1;
        int len = digits.size() - 1;
        while(len >= 0)
        {
            if (digits[len] + up > 9)
            {
                digits[len] = 0;
            }
            else
            {
                digits[len] += up;
                return digits;
            }
            len--;
        }
        digits.insert(digits.begin(), 1);
        return digits;
    }
};

 2015/03/29:

python:

class Solution:
    # @param digits, a list of integer digits
    # @return a list of integer digits
    def plusOne(self, digits):
        up = 1
        length = len(digits) - 1
        for i in range(len(digits)):
            digits[length-i] += up
            up = digits[length-i]/10
            digits[length-i] %= 10
        if up == 1:
            digits.insert(0, 1)
        return digits

 

posted on 2014-11-10 00:13  higerzhang  阅读(163)  评论(0编辑  收藏  举报