系列索引:菜菜的刷题日记 | 被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相关推荐

  1. 菜菜的刷题日记 | 蓝桥杯 — 十六进制转八进制(纯手撕版)附进制转换笔记

    系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 万万没想到啊,回老家过年断更的几天之后,我会因为无聊在除夕这天做了会儿题,然后写篇题解. 文章目录 [题目] [我的代码] ...

  2. 菜菜的刷题日记 | 12.整数转罗马数字

    系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/24,这几天忙着肝并发编程,题在做但是没空写题解,今晚补一篇. 文章目录 [题目] [官方 ...

  3. 一个算法笨蛋的12月leetCode刷题日记

    类似文章 一个算法笨蛋的2021年11月leetCode刷题日记 一个算法笨蛋的2021年12月leetCode刷题日记 一个算法笨蛋的2022年1月leetCode刷题日记 一个算法笨蛋的2022年 ...

  4. 刷题日记【第十三篇】-笔试必刷题【数根+星际密码+跳台阶扩展问题+快到碗里来】

    刷题日记[第十三篇]-笔试必刷题[数根+星际密码+跳台阶扩展问题+快到碗里来] 1.方法区在JVM中也是一个非常重要的区域,它与堆一样,是被[线程共享]的区域. 下面有关JVM内存,说法错误的是?(c ...

  5. 牛客刷题日记(2021-11-24)

    牛客刷题日记(2021-11-24) 题目: 下面程序的输出是:() String x="fmn"; x.toUpperCase(); String y=x.replace('f' ...

  6. 牛客刷题日记(2021-12-8)

    牛客刷题日记(2021-12-8) 题目: 以下哪个接口的定义是正确的?( )interface B { void print() { } ;}interface B { static void pr ...

  7. CTFshow刷题日记-MISC-图片篇(上)基础操作和信息附加

    ctfshow 图片篇引语 大部分题目仅涉及单一知识点,但可能有多种解法: 找到flag并不困难,关键是了解每一题背后的原理: 藏在哪?为什么可以这样藏?请多考虑这两个问题: misc脑图-misc之 ...

  8. Leetcode刷题日记(十二)

    又是老台词:欢迎大家来到一晚一度的leetcode刷题日记时间.今天我们来讲讲队列的问题,队列这方面的基础知识需要的同学到博主前面的文章找吧.队列这方面的问题平时博主也是接触得比较少的.下面是一道利用 ...

  9. Leetcode刷题日记:21-25题篇

    Leetcode刷题日记:21-25题篇 简介 题目: 21. 合并两个有序链表 22. 括号生成 23. 合并K个升序链表 24. 两两交换链表中的节点 25. K 个一组翻转链表 注 简介 这个系 ...

最新文章

  1. python基础-分支判断语句(4)
  2. pdo 封装增删改查类
  3. php显示前60个字,DEDECMS中怎么让文章标题栏突破60个字符
  4. Neo4j Backup:在Mark Needham上存储副本和一致性检查
  5. 用于创建此对象的程序是package_【ROS 学习笔记】CMakeLists.txt 与 package.xml
  6. 深度学习的实用层面 —— 1.14 关于梯度检验实现的标记
  7. 用css3制作一个Music Player Menu
  8. flask WTForms
  9. 安卓音量阶数修改_16款手机UI随便用,音量调节原来可以这样玩
  10. python 基本数据结构 ndarray
  11. Ubuntu18.04及以上设备安装CUDA,CUDNN,Anaconda亲测方法
  12. iPhone11的计算机怎么用,iPhone11怎么自设铃声
  13. px、em、rem、rpx 用法 与 区别
  14. 小米8绑定账号和设备验证失败_不要浪费小米10的双扬声器!杜比全景音刷入教程分享...
  15. python查找公共前缀_Python练习【3】【罗马数字转换/查找公共前缀】
  16. STM32cube 控制 AIP650 TM1650
  17. HEIF 和 HEVC 研究
  18. 技术专业术语/专业名词 - 收集
  19. vscode使用问题合集
  20. 将sd卡格式化为ext4格式并挂载

热门文章

  1. B站评论区抽奖[python]
  2. 怎么看自己电脑的是几位的操作系统的
  3. OO ALV中的data_changed、data_changed_finished事件介绍
  4. 维特比算法(基于李航)
  5. 名义初品微商系统开发,小程序开发
  6. 电机控制Clarke(α/β)等幅值变换推导
  7. 自媒体必做的一个平台
  8. 多维数组存储的两种方式
  9. spring boot毕业生跟踪调查管理系统 毕业设计源码论文+答辩PPT
  10. 金额转换保留小数点后两位