其他分享
首页 > 其他分享> > LeetCode 0066 Plus One

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