leetcode题记:Plus One

编程语言:JAVA

题目描述:

Given a non-empty array of digits representing a non-negative integer, plus one to the integer.

The digits are stored such that the most significant digit is at the head of the list, and each element in the array contain a single digit.

You may assume the integer does not contain any leading zero, except the number 0 itself.

Example 1:

Input: [1,2,3]
Output: [1,2,4]
Explanation: The array represents the integer 123.
Example 2:

Input: [4,3,2,1]
Output: [4,3,2,2]
Explanation: The array represents the integer 4321.

提交反馈:

109 / 109 test cases passed.
Status: Accepted
Runtime: 0 ms
Submitted: 0 minutes ago

解题思路:

题目对得起easy难度,确实简单。
思路就是从最后一个数字开始判断,如果是9,则变成0,继续判断前一个数字;否则,最后一个数字加1,返回。
当然,还需要考虑终止条件,当前数字为第0位(最开头首尾)且此数字值为9时,结束,9变为0,在最前面的位置添加一个1.

代码:

class Solution {
    public int[] plusOne(int[] digits) {


        int i = digits.length;
        while(i > 0){
            i -= 1;


            if(i == 0 & digits[i] ==9){
                digits[i] = 0;
                int[] arr = new int[digits.length + 1];
                for(int j = 0; j < arr.length; j++){
                    if(j == 0){
                        arr[j] = 1;
                    }
                    else{
                        arr[j] = digits[j-1];
                    }
                }

                return arr;
            }

            if(digits[i] == 9){
                digits[i] = 0;
            }
            else{
                digits[i] = digits[i] + 1;
                return digits;
            }

        }
        return digits;
    }
}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页