package leetcode.array; import org.apache.commons.lang.ArrayUtils; import java.lang.reflect.Array; import java.util.Arrays; import java.util.HashMap; import java.util.Map; //给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 // // 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 // // 你可以假设除了整数 0 之外,这个整数不会以零开头。 // // 示例 1: // // 输入: [1,2,3] // 输出: [1,2,4] // 解释: 输入数组表示数字 123。 // 示例 2: // // 输入: [4,3,2,1] // 输出: [4,3,2,2] // 解释: 输入数组表示数字 4321。 public class add1_66 { public static int[] plusOne(int[] digits) { // StringBuilder sb = new StringBuilder(); // for (int i = 0; i < digits.length; i++) { // sb.append(String.valueOf(digits[i])); // } // String s = sb.toString(); // System.out.println("aa"+s); // long num = Long.parseLong(s) + 1; // System.out.println(num); // String s1 = String.valueOf(num); // int[] res = new int[s1.length()]; // for (int i = 0; i < s1.length(); i++) { // res[i] = Integer.parseInt(String.valueOf(s1.charAt(i))); // } // return res; // int tmp = digits[digits.length-1]; // if (tmp != 9 ){ // digits[digits.length-1] = digits[digits.length-1] + 1; // return digits; // } StringBuilder sb = new StringBuilder(); int i = digits.length - 1; while (i >= 0){ if(digits[i] == 9){ digits[i] = 0; i--; } else { digits[i] = digits[i] + 1; break; } } if (digits[0] == 0){ int[] res = new int[digits.length + 1]; res[0] = 1; for (int j = 0; j < digits.length; j++) { res[j+1] = digits[j]; } return res; } return digits; } public static void main(String[] args) throws InterruptedException{ int[] a = {5,6,2,0,0,4,6,2,4,9}; int[] b = {9,9}; System.out.println(Arrays.toString(plusOne(a))); System.out.println(Arrays.toString(plusOne(b))); } }
leetcode_66
最新推荐文章于 2022-08-08 09:26:46 发布