给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

tech2025-10-09  0

/** * 思想方法:若末位无进位,第一层判断完即可直接返回结果,如28-->29;若末位有进位, * 但最高位无进位,判断完之后返回结果,如199-->200;若最高位也有进位,if语句 * 最终失效,数字带着若干个0跳出for循环,进行下一步:给数组添加一个最高位, * 且赋值为1,如 999-->1000 * * @author Leetcode YHHZW */

示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。

示例 2: 输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。

public class Demo08Arr { public static int[] plusOne(int[] digits) { //从最低位开始考虑 for (int i = digits.length - 1; i >= 0; i--) { digits [i] ++; digits [i] = digits [i] % 10; if (digits[i] != 0) { return digits; } } digits = new int[digits.length + 1]; digits[0] = 1; return digits; } } //测试代码 import static Leetcode_True.Demo08Arr.plusOne; public class Demo08 { public static void main(String[] args) { //注意:在类中返回值和参数列表均为数组 int[] ai = plusOne(new int [] {9,9}); for(int s:ai) { //为保证和题目要求的格式一样,因此放入[]中 System.out.print(Arrays.toString(ai));//100 break; } } }
最新回复(0)