LintCode PlusOne 加一

来源:互联网 发布:阿里云学生认证失败 编辑:程序博客网 时间:2024/04/28 02:38

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

The digits are stored such that the most significant digit is at the head of the list.

Example

Given [1,2,3] which represents 123, return [1,2,4].

Given [9,9,9] which represents 999, return [1,0,0,0].

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

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

样例

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

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

public class Solution {    /**     * @param digits a number represented as an array of digits     * @return the result     */    public int[] plusOne(int[] digits) {        int carry = 1;        for (int i = digits.length - 1; i >= 0; i--) {            int sum = digits[i] + carry;            digits[i] = sum % 10;            carry = sum / 10;        }        if (carry == 0) { return digits; }        else {            int[] newDigits = new int[digits.length + 1];            newDigits[0] = carry;            for (int i = 0; i < digits.length; i++) {                newDigits[i + 1] = digits[i];            }            return newDigits;        }    }}


0 0