转载

66. Plus One

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.

难度:easy

题目:

给定一个由单个数字组成的非空数组来表示一个整数,为这个整数加上1.

数字的存储方式使得最有效数字位于列表的开头,数组中的每个元素都包含一个数字。

假定数组组成的整数不以0开头,除了数字0本身。

思路:找出第一个非9的数字加1返回。如果为9置0继续。

Runtime: 0 ms, faster than 100.00% of Java online submissions for Plus One.

Memory Usage: 26.4 MB, less than 42.73% of Java online submissions for Plus One.

class Solution {
    public int[] plusOne(int[] digits) {
        for (int i = digits.length - 1; i >= 0; i--) {
            if (digits[i] < 9) {
                digits[i] += 1;
                return digits;
            } else {
                digits[i] = 0;
            }
        }
        
        if (0 == digits[0]) {
            int[] result = new int[digits.length + 1];
            result[0] = 1;
            for (int i = 0; i < digits.length; i++) {
                result[i + 1] = digits[i];
            }
            
            return result;
        }
        
        return new int[0];
    }
}
原文  https://segmentfault.com/a/1190000018097915
正文到此结束
Loading...