菜菜的刷题日记 | 66.加一 Plus One
系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子
菜鸡的刷题之路——2022/1/7
文章目录
- 【题目】
- 【我的代码】
- 【参考代码1】
- 【参考代码2】
- 【参考代码3】
- 【思考】
【题目】
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例 1:
输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
题目链接:https://leetcode-cn.com/problems/plus-one
【我的代码】
对于该题主要考虑末尾为9的情况的进位,我引入一个point变量当做一个指针来指示运算位置,这里要从高位递减,当末尾不为9直接加一就行了,如果末尾为9则将末尾置0,指针前移,并将前移后指向的位置加一,如[1,9],此时为[2,0],但还需要考虑[9],[9,9]这种情况,我就是在这里卡了,因为指针前移后变成了-1,再按之前的方式将指针位加一的话会覆盖原来的0,因此这里要判断一下,如果是-1了直接在最前面加个1,否则正常执行。
class Solution:def plusOne(self, digits: List[int]) -> List[int]:point = len(digits)-1while digits[point] == 9:digits[point] = 0point -= 1if point == -1:digits.insert(0, 1)else:digits[point] += 1return digits
【参考代码1】
def plusOne(self, digits: List[int]) -> List[int]:digits = [0] + digitsdigits[len(digits)-1] += 1for i in range(len(digits)-1,0,-1):if digits[i] != 10:breakelse:digits[i] = 0digits[i-1] += 1if digits[0] == 0:return digits[1:] else:return digits
【参考代码2】
def plusOne(self, digits: List[int]) -> List[int]:return list(map(int, list(str(int(''.join(map(str, digits))) + 1))))
【参考代码3】
class Solution:def plusOne(self, digits: List[int]) -> List[int]:n = len(digits)for i in range(n - 1, -1, -1):if digits[i] != 9:digits[i] += 1for j in range(i + 1, n):digits[j] = 0return digits# digits 中所有的元素均为 9return [1] + [0] * n
【思考】
因为没有系统学习过算法知识,只能靠大二学的数据结构来勉强写题,这道题第三次才通过,我太菜了。希望这是一个愈挫愈勇的开始,加油!
Python力扣题解系列持续更新,欢迎
点赞收藏
+关注
上一篇:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子
下一篇:菜菜的刷题日记 | 724.寻找数组的中心下标 Find Pivot Index本人水平有限,文章中不足之处欢迎下方
菜菜的刷题日记 | 66.加一 Plus One相关推荐
- 菜菜的刷题日记 | 蓝桥杯 — 十六进制转八进制(纯手撕版)附进制转换笔记
系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 万万没想到啊,回老家过年断更的几天之后,我会因为无聊在除夕这天做了会儿题,然后写篇题解. 文章目录 [题目] [我的代码] ...
- 菜菜的刷题日记 | 12.整数转罗马数字
系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/24,这几天忙着肝并发编程,题在做但是没空写题解,今晚补一篇. 文章目录 [题目] [官方 ...
- 一个算法笨蛋的12月leetCode刷题日记
类似文章 一个算法笨蛋的2021年11月leetCode刷题日记 一个算法笨蛋的2021年12月leetCode刷题日记 一个算法笨蛋的2022年1月leetCode刷题日记 一个算法笨蛋的2022年 ...
- 刷题日记【第十三篇】-笔试必刷题【数根+星际密码+跳台阶扩展问题+快到碗里来】
刷题日记[第十三篇]-笔试必刷题[数根+星际密码+跳台阶扩展问题+快到碗里来] 1.方法区在JVM中也是一个非常重要的区域,它与堆一样,是被[线程共享]的区域. 下面有关JVM内存,说法错误的是?(c ...
- 牛客刷题日记(2021-11-24)
牛客刷题日记(2021-11-24) 题目: 下面程序的输出是:() String x="fmn"; x.toUpperCase(); String y=x.replace('f' ...
- 牛客刷题日记(2021-12-8)
牛客刷题日记(2021-12-8) 题目: 以下哪个接口的定义是正确的?( )interface B { void print() { } ;}interface B { static void pr ...
- CTFshow刷题日记-MISC-图片篇(上)基础操作和信息附加
ctfshow 图片篇引语 大部分题目仅涉及单一知识点,但可能有多种解法: 找到flag并不困难,关键是了解每一题背后的原理: 藏在哪?为什么可以这样藏?请多考虑这两个问题: misc脑图-misc之 ...
- Leetcode刷题日记(十二)
又是老台词:欢迎大家来到一晚一度的leetcode刷题日记时间.今天我们来讲讲队列的问题,队列这方面的基础知识需要的同学到博主前面的文章找吧.队列这方面的问题平时博主也是接触得比较少的.下面是一道利用 ...
- Leetcode刷题日记:21-25题篇
Leetcode刷题日记:21-25题篇 简介 题目: 21. 合并两个有序链表 22. 括号生成 23. 合并K个升序链表 24. 两两交换链表中的节点 25. K 个一组翻转链表 注 简介 这个系 ...
最新文章
- python基础-分支判断语句(4)
- pdo 封装增删改查类
- php显示前60个字,DEDECMS中怎么让文章标题栏突破60个字符
- Neo4j Backup:在Mark Needham上存储副本和一致性检查
- 用于创建此对象的程序是package_【ROS 学习笔记】CMakeLists.txt 与 package.xml
- 深度学习的实用层面 —— 1.14 关于梯度检验实现的标记
- 用css3制作一个Music Player Menu
- flask WTForms
- 安卓音量阶数修改_16款手机UI随便用,音量调节原来可以这样玩
- python 基本数据结构 ndarray
- Ubuntu18.04及以上设备安装CUDA,CUDNN,Anaconda亲测方法
- iPhone11的计算机怎么用,iPhone11怎么自设铃声
- px、em、rem、rpx 用法 与 区别
- 小米8绑定账号和设备验证失败_不要浪费小米10的双扬声器!杜比全景音刷入教程分享...
- python查找公共前缀_Python练习【3】【罗马数字转换/查找公共前缀】
- STM32cube 控制 AIP650 TM1650
- HEIF 和 HEVC 研究
- 技术专业术语/专业名词 - 收集
- vscode使用问题合集
- 将sd卡格式化为ext4格式并挂载
热门文章