【数学】Leetcode 66. 加一【简单】

加一

  • 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。

解题思路

  • 对数组进行处理,将表示的整数加一。由于数组中每个元素都只存储一个数字,需要从数组的末尾开始逐位处理进位问题。

  • 如果所有位都处理完之后仍有进位(例如 999 + 1 变成 1000),需要在数组最前面插入一个 1。

Java实现

public class PlusOne {public int[] plusOne(int[] digits) {int n = digits.length;// 从最后一位开始加一for (int i = n - 1; i >= 0; i--) {if (digits[i] < 9) {digits[i]++;return digits;  // 直接返回数组}digits[i] = 0;  // 处理进位}// 如果所有位都进位了,需要在最前面插入一个1int[] newDigits = new int[n + 1];newDigits[0] = 1;return newDigits;}// 测试用例public static void main(String[] args) {PlusOne solution = new PlusOne();int[] digits1 = {1, 2, 3};int[] digits2 = {4, 3, 2, 1};int[] digits3 = {9, 9, 9};printArray(solution.plusOne(digits1)); // 期望输出: [1, 2, 4]printArray(solution.plusOne(digits2)); // 期望输出: [4, 3, 2, 2]printArray(solution.plusOne(digits3)); // 期望输出: [1, 0, 0, 0]}private static void printArray(int[] array) {for (int num : array) {System.out.print(num + " ");}System.out.println();}
}

时间空间复杂度

  • 时间复杂度:O(n),其中 n 是数组的长度。
  • 空间复杂度:O(1),除了结果数组外,使用了常数级别的额外空间。结果数组可能需要额外的空间,如果数组所有位都进位了,需要一个新的数组。

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

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

相关文章

在Krpano中点击热点放大图片并交互

在全景项目中&#xff0c;经常会遇到这样的功能&#xff1a;点击场景中的某个热点&#xff0c;能够进行图片放大&#xff0c;同时还可以对图片进行交互操作&#xff0c;比如放大图片、拖动图片等&#xff0c;本章节内容讲述如何在Krpano库中调用js代码实现图片的放大和交互。具…

MySQL入门学习-连接查询.RIGHT JOIN

Rights Join 是 MySQL 中的一种连接查询类型&#xff0c;用于根据右表中的匹配条件&#xff0c;将左表中的数据与右表中的数据进行连接。 一、与其他连接查询相比&#xff0c;Rights Join 具有以下特点&#xff1a; 1. 连接方向&#xff1a; Rights Join 以右表为主表&#x…

django 身份验证与鉴权

目录 用户模型建立账号密码登录手机号登录验证码双后端鉴权JWT 介绍 用户模型建立 在django中自带auth_user表,字段名有id, password,username&#xff0c;is_superuer,is_activate , email &#xff0c;is_staff&#xff08;用于标识某个用户是否可以登录到 Django 的管理界面…

【Sa-Token|2】Sa-Token在微服务中的使用

在微服务架构中&#xff0c;使用 Sa-Token 进行分布式认证和权限管理需要考虑到各个服务之间的通信和 Token 的共享。以下是一个详细的教程&#xff0c;介绍如何在微服务中使用 Sa-Token。 1. 微服务架构介绍 假设有以下几个微服务&#xff1a; AuthService: 负责用户认证和 …

Python-日志模块

目录 一、日志级别 二、日志配置 1、日志基本配置 2、日志配置字典&#xff08;知道咋么改就可以&#xff09; 3、日志的使用 一、日志级别 import logginglogging.debug(调试日志) logging.info(消息日志) logging.warning(警告日志) logging.error(错误日志) logging.cr…

Java自增自减运算符

Java中的自增自减运算符分为两种&#xff1a; 自增运算符“ ”&#xff0c;作用是执行加法运算的变量值1 自减运算符“ -- ”&#xff0c;作用是执行加法运算的变量值-1 注意事项&#xff1a; “ ”和“ -- ”既可以放在变量的前面&#xff0c;也可以放在变量的后面。 自增自…

Linux驱动开发笔记(十三)Sysfs文件系统

文章目录 前言一、Sysfs1.1 Sysfs的引入1.2 Sysfs的目录结构1.2 Sysfs的目录详解1.2.1 devices1.2.2 bus1.2.3 class1.2.4 devices、bus、class目录之间的关系1.2.5 其他子目录 二、Sysfs使用2.1 核心数据结构2.2 相关函数2.2.1 kobject_create_and_add2.2.2 kobject_put()2.2.…

大模型自然语言生成自动驾驶可编辑仿真场景(其一 共十篇)

第一篇&#xff1a;LLM greater scene summarize 第二篇&#xff1a;LLM simulation Test effect 第三篇&#xff1a;LLM simulation driving scenario flow work 第四篇&#xff1a;LLM Algorithm flow description 第五篇&#xff1a;Configure the environment and back…

每天一个项目管理概念之PDCA

在项目管理中&#xff0c;PDCA&#xff08;计划-执行-检查-行动&#xff09;循环是一种广泛采用的质量管理工具&#xff0c;它帮助组织确保项目能够高效、有序地进行&#xff0c;并持续优化流程。本文将深入探讨PDCA循环的四个阶段&#xff0c;以及如何将其应用于项目管理中&am…

一键转换PDL至HTML,轻松驾驭文档格式,高效办公新纪元从此开启!

在信息爆炸的时代&#xff0c;文档格式繁多&#xff0c;如何高效处理这些文档成为了每个职场人士关注的焦点。现在&#xff0c;我们为您带来一款革命性的工具——一键转换PDL至HTML&#xff0c;让您轻松驾驭文档格式&#xff0c;开启高效办公新纪元&#xff01; 首先&#xff0…

八-工具包3-pandas数据清洗及相关性

数据清洗概述 数据清洗是对一些没有用的、不合理的数据进行处理的过程。 很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况,如果要使数据分析更加准确,就需要对这些没有用的数据进行处理。 样本数据: from io import StringIO import pandas as pdcsv_d…

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-14模型构造

14模型构造 import torch from torch import nn from torch.nn import functional as F#通过实例化nn.Sequential来构建我们的模型&#xff0c; 层的执行顺序是作为参数传递的 net1 nn.Sequential(nn.Linear(20, 256), nn.ReLU(), nn.Linear(256,10)) """ nn.…

不同@Transactional方法调用同一个synchronized方法引发的生成重复序号问题

背景&#xff1a; Transactional( propagation Propagation.REQUIRED ) 方法 A内调用synchronized方法 这种默认传播方式使得子函数也加入当前事务&#xff0c; synchronized方法结束之后&#xff0c; Transactional 方法A 执行结束之前, synchronized方法对数据库表所作变…

Electron快速入门(三):在(二)的基础上修改了一个文件夹做了个备忘录

Lingering Memories 诗绪萦怀 修改index.html <!--index.html--> <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP --><meta http…

opencv-python(十一)

图像加法 import numpy as np import cv2 img cv2.imread(jk.jpg) res cv2.add(img, img) cv2.imshow(Mypicture1,img) cv2.imshow(MyPicture2,res)cv2.waitKey(0) cv2.destroyAllWindows() res cv2.add(src1, src2, dstNone, maskNone, dtypeNone) src1&#xff1a;第一幅…

Android RecyclerView卡顿

Android RecyclerView卡顿的原因可能包括以下几点&#xff1a; 数据加载和渲染耗时&#xff1a; 当列表项较多或者数据量庞大时&#xff0c;如果在主线程中进行数据加载和布局渲染&#xff0c;会导致主线程阻塞&#xff0c;从而造成滑动卡顿。例如&#xff0c;在滚动过程中需要…

作为一名程序员,怎么才能写出简洁实用还漂亮的代码楼呢?这25个超惊艳的Python代码写法,你一定要学会!

前言 Python可以用于复杂的数据分析和Web开发项目&#xff0c;还能以极少的代码行数完成令人惊叹的任务。本文将分享25个简短的Python代码示例&#xff0c;用来展示Python编程语言的魅力和效率。 1.列表推导式 Python的列表推导式提供了一种优雅的方法来创建列表。 # 将一个…

以太坊==MetaMask获取测试币最新网址

估算分数https://community.infura.io/t/unable-to-receive-sepolia-eth-from-faucet/7715 Gitcoin Passport 水龙头地址&#xff0c;填入自己的测试地址 水龙头项目地址 GitHub - pk910/PoWFaucet: Modularized faucet for EVM chains with different protection methods (…

从0开发一个Chrome插件:用户反馈与更新 Chrome 插件

前言 这是《从0开发一个Chrome插件》系列的第二十二篇文章,也是最终篇,本系列教你如何从0去开发一个Chrome插件,每篇文章都会好好打磨,写清楚我在开发过程遇到的问题,还有开发经验和技巧。 专栏: 从0开发一个Chrome插件:什么是Chrome插件?从0开发一个Chrome插件:开发…

2023年JCR影响因子正式发布,点击查看能源与燃料领域期刊变化【持续更新02】

2024年6月20日&#xff0c;科睿唯安发布了2024年度《期刊引证报告》(Journal Citation Reports&#xff0c;JCR)&#xff0c;报告覆盖全面的高质量期刊资源&#xff0c;提供了丰富的数据、指标和分析。今年JCR的最大变化为&#xff1a;把属于不同数据库&#xff0c;但属于同一学…