数组加一

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

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

你可以假设除了整数 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 @   归绝  阅读(216)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示