66. 加一

题目描述

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。   
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。

方法 数学

如果存在目标值,直接返回

否则一直搜索,最后返回leftindex。

如果最后mid大于目标值,right为mid-1,此时插入位置为left;
如果mid小于目标值,left为mid+1,此时插入位置为left。

代码

package easy.加一66;

class Solution {
    public int[] plusOne(int[] digits) {
        int len = digits.length - 1;
        while(len != -1) {
            if(digits[len] == 9) {
                digits[len] = 0;
                len--;
            } else {
                digits[len] = digits[len] + 1;
                break;
            }
        }
        if (len == -1) {
            int[] res = new int[digits.length + 1];
            res[0] = 1;
            return res;
        }
        return digits;
    }
}