题目

给定一个非负整数组成的非空数组,给整数加一。

可以假设整数不包含任何前导零,除了数字0本身。

最高位数字存放在列表的首位。

解法

https://github.com/biezhihua/LeetCode

解法的关键在于弄明白什么情况下会产生进位。

使用个位、十位、百位进行列举:

个位:
想让个位+1进位,那么个位必须为9

9+1 = 0
carry = 1

十位:
想让十位+1进位,那么十位必须为9,想要产生进位carry,那么必须由个位进位而来。想让个位进位,个位必须为9.

99 + 1 = 00
carry = 1

百位:
想让百位+1进位,那么百位必须为9,想要产生进位carry,那么必须由十位进位而来,想让十位进位,那么十位必须为9,想要产生进位,个位必须为9。

999 + 1 = 000
carry = 1

根据以上可以推论得出两种情况:

  • 最高位进位
  • 最高位不进位

最高位进位
若最高位进位,那么比他低的位数字都为9,且加1后都为0,需要初始化一个长度为(lenght+1)的新数组,0位置为1代表进位。

最高位不进位
若最高位不进位,那么不需要产生新数组,后续数字由更低位计算而来。

public int[] plusOne(int[] digits) {int carry = 1;for (int i = digits.length - 1; i >= 0; i--) {if (carry == 0) {return digits;}int tmp = digits[i] + carry;carry = tmp / 10;digits[i] = tmp % 10;}if (carry != 0) {int[] result = new int[digits.length + 1];result[0] = 1;return result;}return digits;
}

LeetCode - 加一相关推荐

  1. LeetCode(加一)

    LeetCode(加一) 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以 ...

  2. leetcode/加减的目标值,给数组元素添加+或-号组成的表达式值=target的方案数

    代码 package com.xcrj;import java.util.Arrays;/*** 剑指 Offer II 102. 加减的目标值* 给定一个正整数数组 nums 和一个整数 targe ...

  3. leetcode 加一

    109 / 109 个通过测试用例 状态:通过 执行用时:1 ms 内存消耗:34.9 MB 提交时间:6 月,3 周之前 class Solution {public int[] plusOne(i ...

  4. 力扣 (LeetCode)-对称二叉树,树|刷题打卡

    Github来源:力扣 (LeetCode)|刷题打卡 | 求星星 ✨ | 给个❤️关注,❤️点赞,❤️鼓励一下作者 [已开启]任务一:刷题打卡 * 10 篇 哪吒人生信条:如果你所学的东西 处于喜欢 ...

  5. JavaScript刷LeetCode拿offer-经典高频40题

    工作太忙没有时间刷算法题,面试的时候好心虚.这里双手奉上40道LeetCode上经典面试算法题,整理的内容有点长,建议先收藏,慢慢消化,在来年顺利拿到满意的offer. 1.[LeetCode] 两数 ...

  6. eslint是什么_为什么eslint没有 no-magic-string?

    为什么eslint没有 no-magic-string? 最近参加了几次公司组内的Code Review, 发现了一些问题.其中一些问题可以通过工具(比如eslint)解决. 我们就想着通过工具自动化 ...

  7. python求长整数_python 长整数

    Python 的整数与 Numpy 的数据溢出 某位 A 同学发了我一张截图,问为何结果中出现了负数? 看了图,我第一感觉就是数据溢出了.数据超出能表示的最大值,就会出现奇奇怪怪的结果. 然后,他继续 ...

  8. 双非本数据岗的秋招过程

    个人背景: 双非本信管专业,财经211硕管科专业,无论文,本硕绩点排名都在20%左右,六级分数500+:一共两份实习经验,第一份是外企的数据处理工作,第二份是外企的数据研发. 个人目标: 外企和国企等 ...

  9. 【日记】Java学习日记(第63天)持续无聊更新

    前言 Youtube上EJ Media(up主)的视频我依次学完了HTML.CSS.Javascript.Jquery.觉得他教得挺好的(短小精悍),就继续学他教的JAVA.感觉EJ教的都是些语法什么 ...

  10. LeetCode 64最小路径和65有效数字66加一

    原创公众号:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 关注后回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode打卡 52八皇后Ⅱ&53最大子序和& ...

最新文章

  1. vue 非template模式_vue-template-compiler 还能这么用
  2. deepl真的有取代一般翻译的能力,这吞吐量和稳定性...亲测有效
  3. NYOJ-523 亡命逃窜(三维立体的BFS)
  4. orakill和alter system kill session的区别
  5. 用Express、MySQL搭建项目(接口以及静态文件获取、文件上传等)
  6. weblogic内存溢出linux,解决weblogic内存溢出有关问题
  7. github ssh 配置_Github远程仓库克隆更新本机,SSH协议免密操作配置和注意事项
  8. Spring总结四:IOC和DI 注解方式
  9. 安装版mysql5.7_mysql5.7 安装版安装
  10. Linux学习课程笔记(1)
  11. VS.左侧_蓝黄绿_竖线
  12. c++获得cpu厂商_【C++】WMI获取系统硬件信息(CPU/DISK/NetWork etc)
  13. 韦东山嵌入式Linux三大学习路线
  14. 怎样设置rotacast插件_Revit插件|提取地形图上地形小插件(感觉一般,可以试试)...
  15. msm8937 bootloader流程分析
  16. 文件后缀和相应的文件类型,打开方法参考大全
  17. 真假马云Deciphering Jack Ma
  18. 用request模块爬取拉钩招聘信息
  19. matlab ecu代码,嵌入式代码生成 - 汽车 ECU 产品级代码 - MATLAB Simulink
  20. 基于Python实现英文单词学习系统

热门文章

  1. java 调用gephi_Gephi可视化(一)——使用Gephi Toolkit创建Gephi应用
  2. 魔兽世界服务器名称修改,魔兽世界怀旧服服务器名称
  3. 《哈佛大学公开课:幸福课》 学习笔记(1)
  4. Linux--用xmanager远程管理的设定过程
  5. 基于littlevgl设计的手表模拟时钟表盘(附代码)
  6. 鸡兔同笼——算法详解
  7. 第二次作业-语言和文法
  8. css字体设置为白色,css怎么将字体设置成白色
  9. 2020ubc大学计算机硕士录取条件,2020Fall录取|研究牛校UA阿尔伯塔大学计算机硕士两年全奖!...
  10. 由浅入深玩转华为WLAN—12安全认证配置(5)Portal认证,外置Protal服务器TSM对接