题目:
给定一个非负数,表示一个数字数组,在该数的基础上+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; } } }
总耗时: 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
总耗时: 413 ms
原文:http://www.cnblogs.com/theskulls/p/4869531.html