力扣代码学习日记六

Problem: 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

解题方法

对表示数字的数组进行加一操作。如果数组最后一位不是9,则直接加一;如果是9,则需要连续进位。如果所有位都是9,则在数组最前面插入1。

复杂度

时间复杂度:O(n)

这里的 n 是输入数组 digits 的长度。

在最坏的情况下,即数组中的每个元素都是9,我们需要遍历整个数组来将所有的9变成0,并在数组的开头插入一个1。所以时间复杂度是线性的,即 O(n)。

空间复杂度:O(1)

我们没有使用与输入数组长度成比例的额外空间。操作是在输入数组上直接进行的,除了在所有数字都是9且需要在数组前面添加一个新的1的情况下。

在那种特殊情况下,我们创建了一个新的数组,这个数组比输入数组多一个元素,但是这并不影响空间复杂度的常数阶,因此空间复杂度依然是 O(1)。

代码

class Solution(object):def plusOne(self, digits):# 从数组末尾开始向前遍历for i in range(len(digits) - 1, -1 ,-1):if digits[i] < 9:digits[i] += 1 # 如果该位小于9,直接加1后返回数组return digitsdigits [i] = 0  # 如果该位等于9,置为0并继续循环# 如果所有位都是9,需要在数组最前面插入1return[1] + digits
class Solution(object):def plusOne(self, digits):for i in range(len(digits)-1,-1,-1):if digits[i] !=9:digits[i] +=1return digitselse:digits[i] = 0digits.insert(0,1)return digits

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【DDD】学习笔记-发布者—订阅者模式

在领域设计模型中引入了领域事件&#xff0c;并不意味着就采用了领域事件建模范式&#xff0c;此时的领域事件仅仅作为一种架构或设计模式而已&#xff0c;属于领域设计模型的设计要素。在领域设计建模阶段&#xff0c;如何选择和设计领域事件&#xff0c;存在不同的模式&#…

Jenkins 中部署Nodejs插件并使用,并构建前端项目(3)

遇到多个版本nodeJS需要构建的时候 1、第一种就是一个配置安装&#xff0c;然后进行选中配置 2、第二种就是插件&#xff1a;nvm-wrapper&#xff0c;我们还是选用NodeJS插件&#xff1a; &#xff08;1&#xff09;可以加载任意npmrc文件&#xff1b; &#xff08;2&#x…

【Unity自制手册】Unity—Camera相机跟随的方法大全

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

Python自动化UI测试之Selenium基础实操

1. Selenium简介 Selenium 是一个用于 Web 应用程序测试的工具。最初是为网站自动化测试而开发的&#xff0c;可以直接运行在浏览器上&#xff0c;支持的浏览器包括 IE&#xff08;7, 8, 9, 10, 11&#xff09;&#xff0c;Mozilla Firefox&#xff0c;Safari&#xff0c;Googl…

MariaDB落幕和思考

听过MySQL的基本也都知道 MariaDB。MariaDB由MySQL的创始人主导开发&#xff0c;他早前曾以10亿美元的价格&#xff0c;将自己创建的公司MySQL AB卖给了SUN&#xff0c;此后&#xff0c;随着SUN被甲骨文收购&#xff0c;MySQL的所有权也落入Oracle的手中。传闻MySQL的创始人担心…

Windows环境下查看磁盘层级占用空间的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

一、计算机的语言奇迹:探秘ChatGPT的智能回答和写作能力—我耀学IT

目前我们这个行业&#xff0c;最火的话题无疑是AI人工智能&#xff0c;类似ChatGPT这样的智能Ai,今天剩下的时间不多&#xff0c;每天一个主题&#xff0c;我给大家讲一下计算机回答问题和写作的能力&#xff0c;尤其是聊天型AI模型ChatGPT。让大家可以更加前沿的了解一下关于它…

信号信号槽

三、信号槽 概念 信号和槽是两种函数&#xff0c;这是Qt在C基础上新增的特性&#xff0c;类似于其他技术中的回调的概念。 信号槽通过程序员提前设定的“约定”&#xff0c;可以实现对象之间的通信&#xff0c;有两个先决条件。 通信的对象都是在QOBject类中派生出来的。 QOBje…