问题描述

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

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

你可以假设除了整数 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 <= digits.length <= 100
0 <= digits[i] <= 9

解题思路

只需要数组最低位开始,加上一个进位1,如果遇到某一位变为10,那么就需要继续产生1个进位,在下一位加1,如此直到碰到一个使得某一位的值小于10。如果数组的每一位都产生1个进位,比如9999999等,此时我们需要开辟一个新的数组,长度+1,然后让数组的第一个元素为1,其余皆为0即可

代码实现

class Solution {public int[] plusOne(int[] digits) {//如果数组中只有一个元素,并且其值为0,就可以直接在0的基础上加1即可if(digits[0]==0 && digits.length==1){digits[0]=1;return digits;}//我们需要定义一个进位标志位来标志进位情况,因为我们执行的是+1的操作,所以进位初值为1int jinwei=1;//从数组最后一个元素开始计算for(int i=digits.length-1;i>=0;i--){int temp=digits[i]+jinwei;//如果数组的值加上进位等于10,那么就需要再产生一个进位if(temp==10){digits[i]=0;jinwei=1;}else{//如果没有产生10,后面就不需要计算了digits[i]=temp;jinwei=0;break;}}//如果因为数组中的值全部是9,加1之后,产生进位,数组长度发生变化,因此前面的循环无法解决此类问题if(jinwei==1){int [] nums=new int[digits.length+1];nums[0]=1;for(int i=1;i<nums.length;i++){nums[i]=digits[i-1];}return nums;}return digits;}
}

leetcode题解66-加一相关推荐

  1. LeetCode:66. 加一(python、c++)

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

  2. ⭐算法入门⭐《线性枚举》简单09 —— LeetCode 66. 加一

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   给定一个由 整数 组成 ...

  3. Java实现 LeetCode 66 加一

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

  4. LeetCode题解目录

    最新更新于2020.11.27 前往LeetCode主页. 前往GitHub源码.(服务器原因,暂停同步.) 前往码云主页. 已解决 456/1878 - 简单353 中等 90 困难 13 2020 ...

  5. 算法与数据结构+LeetCode题解-Js版

    LeetCode题解Js版 https://webbj97.github.io/leetCode-Js/ 题外话 LeetCode题解:传送门 前端笔记:传送门 项目背景 旨在提高自己对算法的理解,将 ...

  6. 66. 加一。。。。。。

    原题链接: 66. 加一 https://leetcode.cn/problems/plus-one/ 完成情况: 解题思路: 这道题题目也多少有点大病,就是说,题目说的你不知所云,简单来说,就是一个 ...

  7. [LeetCode 题解]: Roman to Interger

    前言 [LeetCode 题解]系列传送门:  http://www.cnblogs.com/double-win/category/573499.html 1.题目描述 Given a roman ...

  8. Leetcode 592. 分数加减运算 C++

    Leetcode 592. 分数加减运算 题目 给定一个表示分数加减运算表达式的字符串,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 ...

  9. 数据结构算法与编程LeetCode题解

    1-50 1. 两数之和 class Solution { public:vector<int> twoSum(vector<int> x, int y); };vector& ...

  10. [66]--加1--简单

    代码 /** @lc app=leetcode.cn id=66 lang=javascript** [66] 加一*/// @lc code=start /*** @param {number[]} ...

最新文章

  1. 技术11期:Atlas的概念你了解多少?
  2. 知方可补不足~SQL2008中的发布与订阅模式~续
  3. python之变量操作
  4. 技术除了工作,还有什么可以提升的?
  5. LeetCode Perfect Squares
  6. pythonweb框架Flask学习笔记05-简单登陆
  7. hook 驱动 截屏
  8. php在线语音,PHP在线语音合成
  9. Win7_刻录DVD
  10. jvm形象简介之一看就懂
  11. 王者荣耀成功的营销之战
  12. 无人机在高楼区做倾斜摄影的地籍建模项目报告
  13. 试用期java_Java试用资源
  14. 在OneNote中快速插入当前日期和时间
  15. 2017值得一瞥的JavaScript相关技术趋势
  16. 关于wow游戏插件制作之前的几件事
  17. git2.28下载 GIT2.28新版本网盘下载
  18. PS第一集 证件照换底色
  19. 黑客进行攻击中最重要的环节“信息收集”
  20. java随机生成26个大写字母

热门文章

  1. 抖音与六大影视公司达成合作 一年内将至少与40部影片绑定营销
  2. 疑似iPhone XI内部设计图曝光:这个造型爱不起来
  3. sip hold 解决方法【原创】
  4. shell编程中配置文件的使用
  5. 可以在一个函数中定义另一个函数_第5周 定义一个函数
  6. ubuntu虚拟机进程被杀死_Linux进程被杀掉(OOM killer),查看系统日志
  7. 李迟2022年3月工作生活总结
  8. 遇到一个valgrind自身的bug
  9. 【hadoop】hadoop 安装 kerberos
  10. 【clickhouse】ClickHouseException code: 999 Cannot allocate block number in ZooKeeper: Coordination