Leetcode 66.Plus One

题目


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;
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容