本文主要是介绍407.Plus One-加一(容易题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
加一
题目
给定一个非负数,表示一个数字数组,在该数的基础上+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
这篇关于407.Plus One-加一(容易题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!