力扣代码学习日记六

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.mzph.cn/news/700182.shtml

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

相关文章

Selenium浏览器自动化测试框架详解

selenium简介 介绍 Selenium [1] 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。支持的浏览器包括IE&#xff08;7, 8, 9, 10, 11&#xff09;&#xff0c;Mozilla Firefox&#xff0c;Safari&#xff0c;Google C…

抖店没有流量怎么办?如何提高店铺流量?醒醒团队经验分享!

我是电商珠珠 醒醒团队这个IP已经做了五年多的时间了&#xff0c;团队成员从原来的几个人到现在的70。我们从20年开始入驻抖店&#xff0c;到现在也已经三年多了。期间也会带着学员一起做店&#xff0c;大多数学员的问题就是店开了&#xff0c;但是一直没有流量&#xff0c;没…

深度学习中数据的转换

原始&#xff08;文本、音频、图像、视频、传感器等&#xff09;数据被转化成结构化且适合机器学习算法或深度学习模型使用的格式。 原始数据转化为结构化且适合机器学习和深度学习模型使用的格式&#xff0c;通常需要经历以下类型的预处理和转换&#xff1a; 文本数据&#xf…

台式电脑电源功率越大越费电吗?装机选购多少W电源

要组装一台电脑&#xff0c;我们首先需要选择硬件。 硬件搭配最关键的一点就是CPU和主板的兼容性。 硬件、电源等之间的平衡都需要仔细考虑。 那么台式电脑电源多大功率合适呢&#xff1f; 下面分享组装电脑电源瓦数选购指南&#xff0c;教您正确选择合适的电源瓦数。 让我们来…

docker install private registry 【docker 安装 registry 仅证书认证】

预备条件&#xff1a; 安装docker 我们设定镜像仓库域名为registry01.dev.com 配置/etc/hosts 192.168.23.51 registry01.dev.com安装 registry #!/bin/bashreg_ip$1 reg_n$2 reg_port$3if [ $# -eq 0 ]; thenecho "Usage: $0 [reg_ip] [registry_name]"echo &q…

消息中间件篇之RabbitMQ-消息不丢失

一、生产者确认机制 RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程中丢失。消息发送到MQ以后&#xff0c;会返回一个结果给发送者&#xff0c;表示消息是否处理成功。 当消息没有到交换机就失败了&#xff0c;就会返回publish-confirm。当消息没有到达MQ时&…

防御保护--VPN

目录 VPN的概述 VPN的分类 VPN的核心技术 --- 隧道技术 VPN其他常用技术 VPN的概述 VPN --- 虚拟专用网 --- 一般指依靠ISP或者其他NSP&#xff0c;也可以是企业自身&#xff0c;提供的一条虚拟网 络专线。这个虚拟的专线是逻辑上的&#xff0c;而不是物理上的&#xff0c;所…

LeetCode 2583. 二叉树中的第 K 大层和

题目链接https://leetcode.cn/problems/kth-largest-sum-in-a-binary-tree/?envTypedaily-question&envId2024-02-23 和我上一篇发的博客类似&#xff0c;通过广度优先遍历二叉树&#xff0c;使用队列存每层的节点值&#xff0c; 最后再做处理&#xff0c;输出第K大层和 …

书生·浦语大模型实战营第二节课作业

使用 InternLM-Chat-7B 模型生成 300 字的小故事&#xff08;基础作业1&#xff09;。 熟悉 hugging face 下载功能&#xff0c;使用 huggingface_hub python 包&#xff0c;下载 InternLM-20B 的 config.json 文件到本地&#xff08;基础作业2&#xff09;。 下载过程 进阶…

Nest.js权限管理系统开发(三)环境变量与配置文件

一般来说数据库的配置包含了一些敏感信息&#xff0c;不宜写在代码中提交到远程仓库&#xff0c;所以我们可以将配置写在配置文件中,然后提交 git 时候将生产环境的配置文件其忽略。我们可以新建.env和.env.prod两个文件分别存放开发与生产环境配置&#xff0c;也可以使用YAML等…

java面试:分布式事务

文章目录 引言I 基础知识1.1 事务(Transaction)1.2 本地事务1.3 分布式事务II 分布式理论2.1 CAP原理2.2 BASE理论2.3 刚柔事务2.4 解决分布事务模型2.5 2PC2.6 3PC2.7 TCC(Try-Confirm-Cancel)补偿事务III Seata 分布式事务

美赛教程:如何参与并胜出数学建模竞赛

一、引言 美国大学生数学建模竞赛&#xff08;MCM/ICM&#xff0c;通常被称为“美赛”&#xff09;是全球范围内最具影响力和挑战性的大学生数学建模竞赛之一。参与美赛不仅能锻炼大学生的数学建模、问题分析、团队协作和英文写作能力&#xff0c;还能为他们未来的学术和职业生…

【Elasticsearch专栏 12】深入探索:Elasticsearch使用索引生命周期管理(ILM)自动化删除旧数据

导言 在Elasticsearch中&#xff0c;随着数据的不断积累&#xff0c;管理旧数据成为了一个重要的问题。为了有效地管理这些数据&#xff0c;Elasticsearch提供了索引生命周期管理&#xff08;ILM&#xff09;功能。ILM允许根据索引的年龄、大小或其他条件自动执行一系列操作&a…

2024-2-22 作业

作业要求&#xff1a; 复习前面知识点(指针、结构体、函数)整理思维导图顺序表(按位置插入、按位置删除和去重、重新写)理解链表的代码&#xff0c;尝试写一下链表的尾插和输出 1.复习前面知识点(指针、结构体、函数) 2.整理思维导图 3.顺序表(按位置插入、按位置删除和去重、…

J7 - 对于ResNeXt-50算法的思考

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 J6周有一段代码如下 思考过程 首先看到这个问题的描述&#xff0c;想到的是可能使用了向量操作的广播机制然后就想想办法验证一下&…

Vue 图片轮播第三方库 介绍

Vue图片轮播是一种在网页上以自动或手动方式展示图片的组件&#xff0c;常用于产品展示、网站banner等场景。有许多第三方库可以帮助Vue开发者轻松实现图片轮播功能。以下是一些流行的Vue图片轮播第三方库的介绍&#xff1a; 1. Vue-awesome-swiper - **简介**&#xff1a;V…

数字化转型导师坚鹏:县域数字化转型案例研究

县域数字化转型案例研究 课程背景&#xff1a; 很多县级政府存在以下问题&#xff1a; 不清楚县域数字化转型的发展模式 不清楚县域数字化转型的成功案例 课程特色&#xff1a; 针对性强 实用性强 创新性强 学员收获: 学习县域数字化转型的发展模式。 学习县…

链表-----节点最大值,累加和,统计节点个数,逆序数据建立链表以及回文字符串

链表-节点最大值 本题要求实现一个函数&#xff0c;遍历一个不带头节点的链表&#xff0c;求链表节点数据的最大值 节点类型定义&#xff1a; struct node { int ch ; struct node *next ;} 函数接口定义&#xff1a; 在这里描述函数接口。例如&#xff1a; int max_node( …

C/C++的内存管理(2)——new与delete的内核与本质

内存管理 operator new 与 operator delete函数回看new与delete的实现内置类型自定义类型 常见面试题 我们已经知道了new与delete的用法及其好处&#xff0c;发现它似乎与C语言中的动态内存开辟的函数&#xff08;malloc/calloc/realloc&#xff09;不同 在这里我们特别指出&am…

Word第一课

文章目录 1. 文件格式1.1 如何显示文件扩展名1.2 Word文档格式的演变1.3 常见的Word文档格式 3. 文档属性理解文档属性查看文档属性 4. 显示比例方式一&#xff1a; 手动调整方式二&#xff1a; 自动调整 5. 视图、窗口视图 1. 文件格式 1.1 如何显示文件扩展名 文档格式指的…