前端与算法 leetcode 66. 加一


题目描述

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

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

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

示例 1:

输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。

示例 2:

输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 4321。

66. 加一

概要

考虑一下进位情况即可,新建一个空数组,长度是传入数组的长度+1,然后给第一个位+1返回此数组即可

提示

解析

解法一

题的意思只是加一,这意味着它的情况只有两种,末位为9或不为9

末位为9时加一位时进位为0,如果不出现进位运算时结束循环

考虑特殊情况99,99999等,手动创建数组填入0

解法二

从后往前依次给每个数加一,加一后大于10则对10取余,一直到数组的头部的时候i===0数组头部加入一位1即可

算法

/**
* @param {number[]} digits
* @return {number[]}
*/
var plusOne = function(digits) {
for (let i = digits.length - 1; i >= 0; i--) {
digits[i]++
digits[i] = digits[i] % 10
if (digits[i] !== 0) return digits
}
digits = new Array(digits.length + 1)
for (let i = 1; i < digits.length; i++) {
digits[i] = 0
}
digits[0] = 1
return digits
// 解法2
// for (let i = digits.length - 1; i >= 0; i--) {
// digits[i]++
// if (digits[i] >= 10) {
// digits[i] = digits[i] % 10
// if (i === 0) {
// digits.unshift(1)
// break
// }
// } else {
// break
// }
// }
// return digits
};

传入[1,2,3]的运行结果

[1,2,4]

执行结果

执行用时 :44 ms, 在所有 javascript 提交中击败了100.00% 的用户
内存消耗 :33.7 MB, 在所有 javascript 提交中击败了33.81%的用户

最新文章

  1. Oracle 11g静默安装软件+手工创建数据库
  2. maven打包jar包
  3. C语言递归,非递归实现翻转链表
  4. [译]Create a Web API in MVC 6
  5. php 版本的indexof —— strpos坑爹
  6. linux下的文件系统
  7. ASP.NET CompareValidator 控件在VS2012中出错的问题
  8. [MVC4-基礎] 從資料庫取值顯示在DropDownList中
  9. linux文件名乱码解决办法
  10. java 协调同步的线程
  11. 【原创】bootstrap框架的学习 第六课[bootstrap代码]
  12. 通过Percona Xtrabackup实现数据的备份与恢复
  13. Python基础-week02
  14. 玩转Leveldb原理及源码--拙见1
  15. 在app内打开自己app的专用设置界面
  16. Basic Linux Privilege Escalation
  17. mybatis:三种参数传递(转载)
  18. [ExcelHome]15个常用的Excel函数公式,拿来即用
  19. map reduce 用法 str处理lower() capitalize()
  20. CorelDRAW中如何复制对象属性详解

热门文章

  1. abp radio表单元素 消失了
  2. 传统ELK分布式日志收集的缺点?
  3. MongoDB 大数据技术之mongodb中在嵌套子文档的文档上面建立索引
  4. Cookie实现购物车功能
  5. UFUN函数 UF_CSYS函数 UF_MTX函数(如何创建坐标系);
  6. diffy 方便的bug 以及流量测试系统
  7. 洛谷p2672推销员题解
  8. SQL进阶-隐式类型转换
  9. win10中通过Anaconda安装tensorflow时报错Traceback (most recent call last): File “E:\Anaconda3\lib\site-packages\pip_vendor\urllib3\response.py”, line 360, in _error_catcher yield
  10. 数据接口-免费版(股票数据API)