LeetCode 0066 Plus One
作者:互联网
1. 题目描述
2. Solution 1
1、思路分析
从右往左遍历digits,若digits[i] 小于9,则直接对digits[i] 进行自增,并返回结果;若digits[i]等于9,则将digits[i]置为0,处理下一位。
若循环结束尚未返回结果,说明digits里面的数字全部是9,上面的操作已经把所有的9置为0,需要新开数组长度为digits.length + 1,置第1位为1。
2、代码实现
package Q0099.Q0066PlusOne;
public class Solution {
public int[] plusOne(int[] digits) {
if (digits == null || digits.length == 0) return digits;
for (int i = digits.length - 1; i >= 0; i--) {
if (digits[i] < 9) {
digits[i]++;
return digits;
}
digits[i] = 0;
}
int[] res = new int[digits.length + 1];
res[0] = 1;
return res;
}
}
3、复杂度分析
时间复杂度: O(n)
空间复杂度: O(n)
标签:digits,return,int,res,复杂度,0066,length,Plus,LeetCode 来源: https://www.cnblogs.com/junstat/p/16120722.html