plus one

来源:互联网 发布:各国进出口数据 编辑:程序博客网 时间:2024/05/11 01:06

容易 加一

29%
通过

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

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

您在真实的面试中是否遇到过这个题? 
Yes
样例

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

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

public class Solution {    // The complexity is O(1)    // f(n) = 9/10 + 1/10 * O(n-1)    //  ==>  O(n) =  10 / 9 = 1.1111 = O(1)        public int[] plusOne(int[] digits) {        int carries = 1;        for(int i = digits.length-1; i>=0 && carries > 0; i--){  // fast break when carries equals zero            int sum = digits[i] + carries;            digits[i] = sum % 10;            carries = sum / 10;        }        if(carries == 0)            return digits;                    int[] rst = new int[digits.length+1];        rst[0] = 1;        for(int i=1; i< rst.length; i++){            rst[i] = digits[i-1];        }        return rst;    }}




0 0
原创粉丝点击