码迷,mamicode.com
首页 > 其他好文 > 详细

力扣(LeetCode)加一 个人题解

时间:2019-02-19 23:33:31      阅读:353      评论:0      收藏:0      [点我收藏+]

标签:solution   输入   题解   整数   数字   tco   +=   简单   col   

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。

示例 2:

输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 4321。



这道题是比较简单的,因为只加一,所以只有遇到当前位数为9的时候才会产生进位,遇到非9直接结束判断。

具体的做法是,从末位向前判断当前位置是否为9,如果是9,则置零,继续循环。如果不是9,则加一,结束循环,因为已经得到正确答案了。

特别地,当最前面的一位为9,加一变成0后,需要改变数组的长度在最前面补1 才是正确答案。

 

代码如下:

class Solution {
    public int[] plusOne(int[] digits) {
        int[] ans;
        for (int i = digits.length - 1; i >= 0; i--) {
            if (digits[i] == 9) {
                digits[i] = 0;
            } else {
                digits[i] += 1;
                return digits;
            }

        }
        if (digits[0] == 0) {
            ans = new int[digits.length + 1];
            ans[0] = 1;
            int t = 0;
            for (int i : digits) {
                ans[++t] = i;
            }
        }
        return digits;
    }
}

 

力扣(LeetCode)加一 个人题解

标签:solution   输入   题解   整数   数字   tco   +=   简单   col   

原文地址:https://www.cnblogs.com/axiangcoding/p/10404049.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!