LeetCode - 66. Plus One

来源:互联网 发布:服务器数据迁移流程图 编辑:程序博客网 时间:2024/05/22 01:54

对数组表示的数字进行加一的处理,从最低位逐个检查这一位上的数字是否为9,如果小于9的话直接+1返回,如果大于9的话则把这一位设置为0继续检查下一位,如果把这个数组循环完毕之后都没有返回,则说明现在原来的数字每一位上面都是9。这时候需要另外用一个长度为n + 1的数组,将其最高位设置为1,直接返回即可。时间复杂度为O(n),代码如下:

public class Solution{    public int[] plusOne(Int[] digits){        if(digits == null || digits.length == 0) return new int[];        int n = digits.length;        for(int i = n - 1; i >= 0; i--){            if(digits[i] < 9){                digits[i]++;                return digits;            }            digits[i] = 0;        }        int[] sum = new int[n + 1];        sum[0] = 1;        return sum;    }}


知识点:

1. Java中int数组自动的初始化值是0,也就是说int[] array = new int[n]得到了一个长为n的全0数组,这一点可以好好利用

0 0