这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战javascript
你们好今天给你们分享下一道 LeetCode 简单难度 的题目[加一]前端
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。java
最高位数字存放在数组的首位, 数组中每一个元素只存储单个数字。git
你能够假设除了整数 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.一个整数被拆开组成一个数组数组
2.整数加1,若是末尾为9 就须要进位markdown
解法网络
1.迭代app
思路
1.从后向前迭代
2.取余数
3.若是取余后是0则继续向前加1,可是若是遇到了第一个位置上是0,则须要在数组前面加一位1
*/
var plusOne = function (digits) {
for (let i = digits.length - 1; i >= 0; i--) {
digits[i] = (digits[i] + 1) % 10;
if (digits[i] !== 0) {
break;
} else {
//若是已是第一个位 则须要在数组前面加一位1
if (i === 0) {
digits.unshift(1);
}
}
}
return digits;
};
/* 复杂度 时间 最小是O(n), 最大是2n 空间 O(1) */
复制代码
这道题考察的对数组中对迭代的应用ide
你们能够看看我分享的一个专栏(前端搞算法)里面有更多关于算法的题目的分享,但愿可以帮到你们,我会尽可能保持天天晚上更新,若是喜欢的麻烦帮我点个赞,十分感谢
文章内容目的在于学习讨论与分享学习算法过程当中的心得体会,文中部分素材来源网络,若有侵权,请联系删除,邮箱 182450609@qq.com