leetcode题解66-加一
问题描述
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 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-加一相关推荐
- LeetCode:66. 加一(python、c++)
题目描述 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 ...
- ⭐算法入门⭐《线性枚举》简单09 —— LeetCode 66. 加一
文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述 给定一个由 整数 组成 ...
- Java实现 LeetCode 66 加一
66. 加一 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示 ...
- LeetCode题解目录
最新更新于2020.11.27 前往LeetCode主页. 前往GitHub源码.(服务器原因,暂停同步.) 前往码云主页. 已解决 456/1878 - 简单353 中等 90 困难 13 2020 ...
- 算法与数据结构+LeetCode题解-Js版
LeetCode题解Js版 https://webbj97.github.io/leetCode-Js/ 题外话 LeetCode题解:传送门 前端笔记:传送门 项目背景 旨在提高自己对算法的理解,将 ...
- 66. 加一。。。。。。
原题链接: 66. 加一 https://leetcode.cn/problems/plus-one/ 完成情况: 解题思路: 这道题题目也多少有点大病,就是说,题目说的你不知所云,简单来说,就是一个 ...
- [LeetCode 题解]: Roman to Interger
前言 [LeetCode 题解]系列传送门: http://www.cnblogs.com/double-win/category/573499.html 1.题目描述 Given a roman ...
- Leetcode 592. 分数加减运算 C++
Leetcode 592. 分数加减运算 题目 给定一个表示分数加减运算表达式的字符串,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 ...
- 数据结构算法与编程LeetCode题解
1-50 1. 两数之和 class Solution { public:vector<int> twoSum(vector<int> x, int y); };vector& ...
- [66]--加1--简单
代码 /** @lc app=leetcode.cn id=66 lang=javascript** [66] 加一*/// @lc code=start /*** @param {number[]} ...
最新文章
- 技术11期:Atlas的概念你了解多少?
- 知方可补不足~SQL2008中的发布与订阅模式~续
- python之变量操作
- 技术除了工作,还有什么可以提升的?
- LeetCode Perfect Squares
- pythonweb框架Flask学习笔记05-简单登陆
- hook 驱动 截屏
- php在线语音,PHP在线语音合成
- Win7_刻录DVD
- jvm形象简介之一看就懂
- 王者荣耀成功的营销之战
- 无人机在高楼区做倾斜摄影的地籍建模项目报告
- 试用期java_Java试用资源
- 在OneNote中快速插入当前日期和时间
- 2017值得一瞥的JavaScript相关技术趋势
- 关于wow游戏插件制作之前的几件事
- git2.28下载 GIT2.28新版本网盘下载
- PS第一集 证件照换底色
- 黑客进行攻击中最重要的环节“信息收集”
- java随机生成26个大写字母
热门文章
- 抖音与六大影视公司达成合作 一年内将至少与40部影片绑定营销
- 疑似iPhone XI内部设计图曝光:这个造型爱不起来
- sip hold 解决方法【原创】
- shell编程中配置文件的使用
- 可以在一个函数中定义另一个函数_第5周 定义一个函数
- ubuntu虚拟机进程被杀死_Linux进程被杀掉(OOM killer),查看系统日志
- 李迟2022年3月工作生活总结
- 遇到一个valgrind自身的bug
- 【hadoop】hadoop 安装 kerberos
- 【clickhouse】ClickHouseException code: 999 Cannot allocate block number in ZooKeeper: Coordination