首页 > 其他 > 详细

lintcode 容易题:Plus One 加一

时间:2015-10-11 17:58:35      阅读:415      评论:0      收藏:0      [点我收藏+]

题目:

加一

给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。

该数字按照大小进行排列,最大的数在列表的最前面。

样例

给定 [1,2,3] 表示 123, 返回 [1,2,4].

给定 [9,9,9] 表示 999, 返回 [1,0,0,0].

解题:

好像只有这样搞,对应进位的时候,要新定义个数组

Java程序:

技术分享
public class Solution {
    /**
     * @param digits a number represented as an array of digits
     * @return the result
     */
    public int[] plusOne(int[] digits) {
        // Write your code here
        int len = digits.length;
        int carray = 1;
        for(int i = len-1;i>=0;i--){
            carray +=digits[i];
            digits[i] = carray%10;
            carray = carray/10;
        }
        if(carray!=1)
            return digits;
        else {
            int nums[] = new int[len+1];
            nums[0] = 1;
            for(int i=1;i<len+1;i++)
                nums[i] =digits[i-1];
            return nums;
        }
        
    }
}
View Code

总耗时: 11253 ms

Python程序:

技术分享
class Solution:
    # @param {int[]} digits a number represented as an array of digits
    # @return {int[]} the result
    def plusOne(self, digits):
        # Write your code here
        carray = 1 
        for i in range(len(digits)-1,-1,-1):
            carray +=digits[i]
            digits[i] = carray%10
            carray = carray/10
        
        if carray!=1:
            return digits
        else:
            digits = [1] + digits
            return digits
View Code

总耗时: 413 ms

lintcode 容易题:Plus One 加一

原文:http://www.cnblogs.com/theskulls/p/4869531.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!