Plus One

来源:互联网 发布:上海知柚公司出名吗 编辑:程序博客网 时间:2024/05/01 15:43

思路:

1.如果最后一位小于9,则digits[length-1]++,返回

2.如果最后一位大于8,则循环访问数组,直至某位数<10,就退出循环

3.如果最后得到的进位>0,则需要将数组长度扩大1,原来的数组往后平移

public int[] plusOne(int[] digits) {        int length = digits.length;        int add = 0,i = length-1,jin = 0;        if(digits[i] < 9){            digits[i]++;            return digits;        }        digits[i]++;        for(i = length-1;i>=0;i--){            add = jin+digits[i];            if(add>9){                digits[i] = add%10;                jin = add/10;            }else{                digits[i] = add;                jin = 0;                break;            }        }        if(jin > 0){            int [] ret = new int[length+1];            ret[0] = jin;            for(int j = 0;j<length;j++){                ret[j+1]= digits[j];            }            return ret;        }        return digits;    }



0 0
原创粉丝点击