数组加一

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

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

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

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

            }
            //如果所有位都是进位,则长度+1
            digits= new int[digits.length + 1];
            digits[0] = 1;
            return digits;
    }
}

 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/plus-one

主要思路:该题大意是用一个输入数组表示一个数字,然后这个数的基础上加一返回一个新的数组。主要考虑的是数组末尾是否有9,有几个9(涉及进位,从而可能会影响数组长度),所以采用逆序遍历,将9改为0,如果不等9就加1,全部为9的情况则是原数组全部元素赋值为0,再创建一个比原来数组长度多一的新数组将首位赋值为1。以上就将全部情况都考虑到了。

posted @ 2022-01-28 21:44  归绝  阅读(224)  评论(0)    收藏  举报