Leetcode 05 ——加一(Java)

简介: Leetcode 05 ——加一(Java)

前言


Algorithms + Data Structures = Programs.


                                                     ————Pascal之父 Nicklaus Wirth


算法 + 数据结构 = 程序


坚持刷算法题,变得更强!


题目及解析

图片.png


解析

看看题目是不是脑子一热觉得这题so easy。不就是加1嘛,我只要把数组最后一个数加一然后返回整个数组不就行了。


此言差矣,那你个位数如果是9嘞?那你是不是十位数还要加1?那如果你十位数还是9,百位数是不是又要加1?层层套娃给你弄晕了。


其实我们要解决此题很简单。


思路:我们分为两种情况,一种是普通数,这种数既可以没有进1,也可以进1。举个栗子:普通数可以是123然后加1,变成123;也可以是169,加一变成167,只要加一后长度不变,你原来是三位数加一还是三位数就行。我们认为是普通数。


另一种特殊情况就可以直接举例子:比如999,加一之后是不是变成1000,原来是三位数,加一之后变成了四位数,这时候我们是不是就要让他的数组长度加1了。注意数组长度加1哦。


然后在普通数里面我们再分两种情况:

①尾数或除头数以外有9的情况,咱们可以直接此位赋值为0,然后让 一个变量 i 继续循环,前一位如果不为9,加1即可。

②没有9就直接加1


解题代码

classSolution {
publicint[] plusOne(int[] digits) {
intn=digits.length;
for(inti=n-1;i>=0;i--){
if(digits[i]==9){
digits[i] =0;
            } else{
digits[i] +=1;
returndigits;
            }
        }
digits=newint[n+1];
digits[0] =1;
returndigits;
    }
}
目录
相关文章
|
1月前
|
算法 Java
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
34 6
|
1月前
|
存储 算法 Java
LeetCode经典算法题:打家劫舍java详解
LeetCode经典算法题:打家劫舍java详解
40 2
|
1月前
|
人工智能 算法 Java
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
35 1
|
1月前
|
存储 算法 Java
LeetCode经典算法题:预测赢家+香槟塔java解法
LeetCode经典算法题:预测赢家+香槟塔java解法
32 1
|
1月前
|
存储 算法 Java
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
55 0
|
1月前
|
算法 Java
LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
40 0
|
1月前
|
存储 算法 Java
LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
18 0
|
1月前
|
算法 Java 索引
LeetCode初级算法题:寻找数组的中心索引+x的平方根+三个数的最大乘积+Leetcode 149:直线上最多的点数 Java详解
LeetCode初级算法题:寻找数组的中心索引+x的平方根+三个数的最大乘积+Leetcode 149:直线上最多的点数 Java详解
28 0
|
1月前
|
Python
【Leetcode刷题Python】剑指 Offer 32 - III. 从上到下打印二叉树 III
本文介绍了两种Python实现方法,用于按照之字形顺序打印二叉树的层次遍历结果,实现了在奇数层正序、偶数层反序打印节点的功能。
38 6
|
1月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
63 2