LeetCode算法学习之--数组--加一

这是我参与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) */

复制代码

1.png

总结

这道题考察的对数组中对迭代的应用ide

你们能够看看我分享的一个专栏(前端搞算法)里面有更多关于算法的题目的分享,但愿可以帮到你们,我会尽可能保持天天晚上更新,若是喜欢的麻烦帮我点个赞,十分感谢

文章内容目的在于学习讨论与分享学习算法过程当中的心得体会,文中部分素材来源网络,若有侵权,请联系删除,邮箱 182450609@qq.com

相关文章
相关标签/搜索