407.Plus One-加一(容易题)

    xiaoxiao2022-06-22  45

    加一

    题目

    给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。 该数字按照大小进行排列,最大的数在列表的最前面。

    样例

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

    题解

    从数组尾部开始执行+1运算并保存进位,在遍历运算中如无进位则可快速跳过。在计算结束后由是否有进位判断原数组长度是否发生变化,决定是否需要建立新数组。

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

    Last Update 2016.9.14

    转载请注明原文地址: https://ju.6miu.com/read-1122895.html

    最新回复(0)