【每日一题】【LeetCode】【第六天】【Python实现】加一

news2024/10/6 10:26:38

加一的解决之路= =

题目描述

在这里插入图片描述

测试案例(部分)

在这里插入图片描述

第一次

+1这个很好理解,唯一的难点就是个位+1导致的进位的问题,可能会只会导致十位+1,也有像8999这样产生多次进位的情况。

为了解决进位问题,自己想到了第三天学到的逆序方法,然后从后往前判断是否有进位情况产生,满足>=10的进位条件,就-10,并将前一位进行+1操作。

class Solution(object):
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        digits[-1] += 1
        n = len(digits)
        for i in range(n-1, 0, -1):
            if digits[i] >= 10:
                digits[i] -= 10
                digits[i-1] += 1
        return digits

测试,通过了。直接提交,报错。

在这里插入图片描述

第二次

有点东西的,自己考虑漏了一种情况,就是最高位是9的情况,此时要产生一个新的数位,我们来想一下该怎么完善,来应对这种情况。

注意一下这个range(n-1, 0, -1),输出的结果应该是n-1,n-2, ..., 2, 1,是没有0的,所以才保证了for循环中,digits[i-1] += 1不会越界。但也正是因为没有0,所以会导致循环中不会检测最高位是否满足进位条件。

所以,接下来就简单了,这个情况需要我们在循环之后进行处理。开始完善代码。

class Solution(object):
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        digits[-1] += 1
        n = len(digits)
        for i in range(n-1, 0, -1):
            if digits[i] >= 10:
                digits[i] -= 10
                digits[i-1] += 1
        if digits[0] >= 10:
            digits[0] -= 10
            digits = [1] + digits
        return digits

循环结束后,再进行一个判断,如果最高位满足进位要求,利用python中列表可加性,直接加一个1上去(就等于Concat合并操作),这样就得到了所需的结果。

测试正确,提交,通过了。而且费时超过了77%的人,可以了。

在这里插入图片描述

结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/146948.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql三表查询15个例子带你搞懂它

mysql三表查询30个经典案例创建三个表a、b、c表a中的数据表b中的数据表c中的数据1.查询出学习成绩70分以上的学生姓名与成绩与学科;2.查询姓名以mi结尾的学生姓名及其任课老师姓名;3.选修课名为math的学生学号与姓名;4.选修课号为C4的学生学号&#xff1…

QEMU调试Linux内核环境搭建

一个最小可运行Linux操作系统需要内核镜像bzImage和rootfs,本文整理了其制作、安装过程,调试命令,以及如何添加共享磁盘。编译内核源码从 The Linux Kernel Archives 网站下载内核源码,本文下载的版本为4.14.191,4.14.…

危险程度(并查集)

有 nn 种化学物质,编号 1∼n1∼n。 其中,有 mm 对物质之间会发生反应。 现在,要将这些化学物质逐个倒入同一个试管之中,具体倒入顺序不限。 我们需要计算一下试管的危险值。 已知,空试管的危险值为 11,…

【UE4 第一人称射击游戏】21-添加动态扩散准心

素材资料地址:链接:https://pan.baidu.com/s/1epyD62jpOZg-o4NjWEjiyg密码:jlhr上一篇:【UE4 第一人称射击游戏】20-添加瞄准十字线本篇效果:步骤:将资源移至FPS项目文件夹内移入后发现多了一个名为“WBCro…

【web安全】——报错注入

作者名:Demo不是emo主页面链接: 主页传送门创作初心: 舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷座右…

如何查看sqlite数据库的 .db文件中的表的内容数据

在使用 qt 的sqlite 数据的时候,对于创建的数据库的 .db 文件的内容的查看我们可以按照下面的步骤安装工具进行查看 下载所需的sqlite 查看工具 下载:链接:https://pan.baidu.com/s/1KSl9w61zaEyemhR1Ir04_A 提取码:6666 只需要解压即可,其中安装包内…

MINISForum HX90 主机风扇调教

今年秋天买了个1个HX90 5900H的mini主机。准系统版本,2899元。 但是买回来之后,发现它的风扇声音实在是大,稍微一加载点东西,就 开始呜呜的响,简直让人心烦 意乱。 去了官网查看。好多人的解决办法看了没看明白&…

【机器学习】PR曲线F1评分ROC曲线AUC

参考:《百面机器学习》 PR曲线 TP( True Positive):真正例 FP( False Positive):假正例 FN(False Negative):假反例 TN(True Negative&#xff0…

基于imx6ull配置开发环境

1. 交叉编译链背景:因为在原子的教程中有强调最新的Linaro gcc编译完uboot后无法运行的问题,所以原子采用4.9,那我们就沿用下。Linaro gcc有两个版本: gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.tar.xz 和 gcc-linaro-4.9.4-20…

linux反弹备忘录

如果你有幸在渗透测试中发现了命令执行漏洞,那么不久之后你可能需要一个交互式shell。如果无法添加新帐户/ SSH密钥/ .rhosts文件并登录,则下一步可能是拖回反向shell或将shell绑定到TCP端口。 本页讨论前者。创建反向 shell 的选项受到目标系统上安装的…

【阶段三】Python机器学习05篇:机器学习项目实战:逻辑回归模型

本篇的思维导图: 要对离散变量进行预测,则要使用分类模型。分类模型与回归模型的区别在于其预测的变量不是连续的,而是离散的一些类别,例如,最常见的二分类模型可以预测一个人是否会违约、客户是否会流失、肿瘤是良性还是恶性等。逻辑回归模型虽然名字中有“回归…

Neural-Pull曲面重建程序配置

前几天一篇曲面重建文章的审稿意见回来了,要求加近三年对比方法。在github上搜了一些项目,大部分的环境都很难配置成功。最后找了一个ICML2021年的点云重建项目[1]作为实验对比。 项目链接:mabaorui/NeuralPull-Pytorch 整体来说&#xff0…

SpringBoot 多种方式配置错误页面

参考资料 SpringBoot异常处理机制-BasicErrorController与ControllerAdviceJava开发从工作到原理–BasicErrorController统一异常处理【spring boot】spring boot 处理异常SpringBoot一个请求的处理全过程ControllerAdvice和ErrorPageRegistrar接口配置错误页面的问题SpringBo…

【Linux操作系统】自动化编译make和Makefile

文章目录一.make/makefile简介1.什么是make,makefile?2.为什么要有make/makefile?二.makefile文件规则1.基本规则2.举一个例子3.伪目标4.其他规则三.文件三个时间问题-make程序1.三个时间何时更新2.touch的两个作用3.make程序如何知道依赖文件是否更新?一.make/makefile简介…

手写Srping11(实现AOP切面)

文章目录目标设计项目结构一、代理方法的案例二、代理方法案例拆解实现1、切点表达式——Pointcut2、类匹配器——ClassFilter3、方法匹配器——MethodMatcher4、实现切点表达式类——AspectJExpressionPointcut4.1、匹配验证5、包装切面信息——AdvisedSupport5.1、被代理的目…

Zynq PS之MIO、EMIO调试

目录 原理框图 Vivado中添加&配置Zynq UltraScale MPSoc IP UART设置(仅用于调试,非必需) MIO、EMIO设置 DDR配置 执行Generate Output Products 执行Create HDL Wrapper 执行File -> Export ->Export Hardware 执行Launch S…

Springboot中配置文件application.yaml的位置

文章目录位置一:整个项目的config包下位置二:整个项目的根目录下位置三:resources文件夹下config包中位置四:resources文件夹下四个位置的优先级位置一:整个项目的config包下 前些天发现了一个巨牛的人工智能学习网站&…

SQL优化实战-0002:select查询不建议使用星号(select *),最好指定具体查询字段

文章目录1.查询时的普遍写法2.问题分析2.1 计算负担2.2 IO负担2.3 覆盖索引失效2.4 缓存压力3.总结1.查询时的普遍写法 select * from the_table_name where ...2.问题分析 2.1 计算负担 数据库需要去解析更多的对象字段、权限、属性,查询数据字典将"*"…

dp刷题(二)分割回文串(详细推导+O(N^3)=>O(N^2)优化)

目录 分割回文串-ii_牛客题霸_牛客网 ​编辑 描述 示例1 思路 状态F(i):即为第i个字符时所需要切割的最小次数 状态转移方程:F(i) min(F(i), F(j)1) 优化: 注意点 分割回文串-ii_牛客题霸_牛客网 描述 给出一个字符串s&#xff0…

Android---Bottom Sheet

目录​​​​​​​ Bottom Sheet BottomSheetBehavior BottomSheetDialog 完整 Demo Bottom Sheet Bottom Sheet 是 Design Support Library 23.2 版本引入的一个类似于对话框的控件,可以暂且叫做底部弹出框。Bottom Sheet 中的内容默认是隐藏起来的&#xff0…