数据结构和算法分析程序员面试的那些小事Leetcode

Leetcode 66.Plus One

2016-12-05  本文已影响141人  沉默的叔叔

题目


Plus One

题目大意:将一个数字加1,这个数字的每一位存放在数组里。

直接模拟相加的过程就好。

代码如下:

public class Solution {
    public int[] plusOne(int[] digits) {
        boolean flag = true;//标记有没有进位
        for (int i = digits.length-1;i>=0;i--){
            //小于9说明没有进位,直接加1后跳出循环
            if(digits[i]<9){
                digits[i] = digits[i] + 1;
                break;
            } else {
                //有进位则继续检查前一位
                digits[i] = 0;
                //第一位有进位
                if (i == 0) {
                    flag = false;
                }
                continue;
            }
        }
        if (flag)
            return digits;
        else {
            //第一位有进位的时候数组最前边要加1
            int[] re = new int[digits.length+1];
            re[0] = 1;
            for (int i=1;i<re.length;i++)
                re[i] = digits[i-1];
            return re;
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读