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
|
3月前
|
算法 Java
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
50 6
|
3月前
|
存储 算法 Java
LeetCode经典算法题:打家劫舍java详解
LeetCode经典算法题:打家劫舍java详解
68 2
|
3月前
|
人工智能 算法 Java
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
50 1
|
3月前
|
存储 算法 Java
LeetCode经典算法题:预测赢家+香槟塔java解法
LeetCode经典算法题:预测赢家+香槟塔java解法
59 1
|
3月前
|
存储 算法 Java
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
79 0
|
3月前
|
算法 Java
LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
54 0
|
3月前
|
存储 算法 Java
LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
39 0
|
2月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
3月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
113 2