66. 加一
https://leetcode-cn.com/problems/plus-one/description/
package com.test; import java.util.Arrays; /** * @Author stono * @Date 2018/8/23 上午8:13 */ public class Lesson066 { public static void main(String[] args) { int[] digits = {1}; int[] ints = plusOne(digits); System.out.println(Arrays.toString(ints)); } public static int[] plusOne(int[] digits) { int length = digits.length; // 如果最后一位小于9,不需要进位 if (digits[length - 1] < 9) { digits[length - 1] = digits[length - 1] + 1; return digits; } int last = digits[length - 1]; // 判断不等于9的是哪一位 while (last - 9 == 0 ) { length--; if (length < 0) { break; } last = digits[length]; } // 找到中间某一位比9小 if (length > -1) { // 把该位加1 digits[length] = digits[length] + 1; // 该位之后的数字都加1 for (int i = length + 1; i < digits.length; i++) { digits[i] = 0; } return digits; } // 如果全部都等于9,就进位处理 int[] res = new int[digits.length + 1]; res[0] = 1; for (int i = 1; i < res.length; i++) { res[i] = 0; } return res; } }