练习题 加一

简介: 练习题 加一

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

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

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

示例1
输入:digits = [1,2,3]

输出:[1,2,4]

解释:输入数组表示数字 123。

示例2
输入:digits = [4,3,2,1]

输出:[4,3,2,2]

解释:输入数组表示数字 4321。

示例3
输入:digits = [0]

输出:[1]

1.宇宙无敌暴力硬解

题目的意思是将数组里面的元素看作是位运算进行一个十进制的加法,当数组是最后一个数为9时满9进1,如果数组里面全是9[9,9,9]则要考虑将数组中的元素都变成0 然后扩容并且第一位的元素变成1.

class Solution {
    public int[] plusOne(int[] digits) {
        int length=digits.length;
        for(int i=length-1;i>=0;i--){
            if(digits[i]!=9){
                digits[i]+=1;
                return digits;//在此处return就会终止
            }else{
                digits[i]=0;//如果为9则该位变成0即可
            }
        }
        int temp[]=new temp[length+1];//数组不全为9都不会到达这一步
            temp[0]=1;
            return temp;
    }
}

+3.png

目录
相关文章
|
1月前
|
存储 C++
LeetCode(加一)
对LeetCode上的“加一”问题,提供了C++的解决方案,并讨论了不同情况下的加法操作,包括无进位、有进位以及最高位需要进位的情况。
43 2
|
6月前
|
存储
leetcode代码记录和对比(两数相加
leetcode代码记录和对比(两数相加
25 0
|
6月前
|
存储
leetcode-66:加一
leetcode-66:加一
23 0
|
6月前
|
存储
LeetCode 66. 加一
LeetCode 66. 加一
36 0
leetcode:66. 加一
函数原型: int* plusOne(int* digits, int digitsSize, int* returnSize) 注:digits是输入的数组,digitsSize是输入数组的大小,returnSize是输出数组的大小
45 0
|
Java Python
leetcode:66.加一
如果数组中的元素都是9的话,那么原数组就需要扩容一位,否则直接在原基础上修改值即可。
48 0
|
存储 算法
Leetcode——66. 加一
Leetcode——66. 加一
|
存储 算法 Python
力扣刷题记录——190. 颠倒二进制位、191. 位1的个数、202. 快乐数
力扣刷题记录——190. 颠倒二进制位、191. 位1的个数、202. 快乐数
121 0
力扣刷题记录——190. 颠倒二进制位、191. 位1的个数、202. 快乐数
复习C部分:1.for循环 2.do while循环语句 3.在一个有序数组中查找某个数,例如在1~10之间找7(例题包含计算n的阶乘+打印1~10的奇数+二分法)
复习C部分:1.for循环 2.do while循环语句 3.在一个有序数组中查找某个数,例如在1~10之间找7(例题包含计算n的阶乘+打印1~10的奇数+二分法)
116 0
复习C部分:1.for循环 2.do while循环语句 3.在一个有序数组中查找某个数,例如在1~10之间找7(例题包含计算n的阶乘+打印1~10的奇数+二分法)
|
存储 算法
LeetCode 66. 加一 Plus One
LeetCode 66. 加一 Plus One