当前位置: 首页 > news >正文

【每日刷题】加一

66. 加一 - 力扣(LeetCode)

方法一

这版是自己的AC代码,记录一下。

首先用flag表示此刻是否有进位(当前位是否需要+1),初始置true。先假设最后答案数组位数与原数组位数相同,如果flag为真,说明当前位需要+1,即 res[i] = digits[i] + 1 ,如果+1后 res[i] == 10 ,说明需要进位,把res[i]置为0,flag置为true。否则res[i]不需要有变化,flag置为false。

最后判断结束后flag。如果为false直接返回res就可以了。但如果依然为true就说明一直都有进位,就是9999这种数。最开始我在if(flag)里面添加了每一位赋值的操作,让 newRes[i+1] = res[i] 。后面看了别人的题解,反应过来如果flag为真,说明答案是100000这种,末尾肯定都是0。所以直接给newRes[0]赋值为1即可,其它位都是初始化的0,就可以直接返回了。

class Solution {public int[] plusOne(int[] digits) {int len = digits.length;boolean flag = true;int res[] = new int[len];for(int i = len - 1; i >= 0; i--) {if(flag) {res[i] = digits[i] + 1;if(res[i] == 10){res[i] = 0;flag = true;} else{flag = false;}} else {res[i] = digits[i];}}if(flag) {int newRes[] = new int[len + 1];newRes[0] = 1;return newRes;} else{return res;}}
}

方法二

评论区找到的最满意的一版题解。

直接判断加1前digits[i]是否为9,是的话就让它为0,继续循环。如果不为9,这里加上1后就可以结束了,直接返回digits数组。如果for循环结束还没有返回,说明给的数是9999这种一直走的if语句,那么就给数组扩容1个数并且重新初始化,把首位置为1,返回即可。

class Solution {public int[] plusOne(int[] digits) {int len = digits.length;for(int i = len - 1; i >= 0; i--) {if(digits[i] == 9) {digits[i] = 0;} else{digits[i]++;return digits;}}digits = new int[len + 1];digits[0] = 1;return digits;}
}
http://www.dtcms.com/a/274028.html

相关文章:

  • kubernetes高级调度
  • lodash不支持 Tree Shaking 而 lodash-es可以
  • 可信数据空间(Trusted Data Space)核心能力及行业赋能分析
  • 7.11类
  • 上位机知识篇---端口
  • CSS和CSS3区别对比
  • Day58
  • 深度学习篇---松科TPU部署代码分析
  • 线程邮箱(线程间通信的异步缓存机制)
  • 数据分析师如何构建自己的底层逻辑?
  • 数据结构自学Day5--链表知识总结
  • 基于FP6195的60V宽压输入降压电源方案 - 适用于智能家居模块供电
  • 亚洲零售行业发展趋势洞察
  • P5709 【深基2.习6】Apples Prologue / 苹果和虫子
  • Python—文件操作
  • 从语音识别到智能助手:Voice Agent 的技术进化与交互变革丨Voice Agent 学习笔记
  • Django 模型(Model)
  • k8s服务发布进阶
  • k8s-高级调度(一)
  • k8s深度讲解:无限的扩展性 - CRD 与 Operator
  • Rust 变量遮蔽(Variable Shadowing)
  • Rust与UE5高效集成实战
  • 湖南群狼市场调查——专注汽车销售服务深度评测
  • 如何快速学习GO语言
  • ajax和XMLHttpRequest以及fetch
  • Rust基础-part2-变量和可变类型
  • C#中的设计模式:构建更加优雅的代码
  • 学弟让我帮忙写一个学生管理系统的后端,我直接上科技
  • 数据结构 之 【链式二叉树】(C语言实现二叉树的前序中序后序层序遍历,节点个数、树的高度、第K层的节点个数、查找、完全二叉树的判别、销毁创建二叉树)
  • 操作系统-进程