当前位置: 首页 > news >正文

66.加1

目录

一、问题描述

二、解题思路

三、代码

四、复杂度分析


一、问题描述

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

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

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

二、解题思路

  • 从数组的 最后一位(最低位) 开始加 1;

  • 如果这一位加完不是 10,就直接返回;

  • 如果是 10,就变成 0,然后进位,继续处理前一位;

  • 如果最前一位也进位了,比如 [9,9,9],最后就需要在最前面插入一个 1

三、代码

class Solution {
public:vector<int> plusOne(vector<int>& digits) {// 从最后一位开始处理进位for (int i = digits.size() - 1; i >= 0; i--) {if (digits[i] < 9) {// 如果当前位小于 9,直接加一,后面不用处理了digits[i]++;return digits;}// 当前位是 9,加一会变成 10,要进位,当前位变成 0digits[i] = 0;}// 如果全部都进位了,例如 999 → 1000// 最终结果需要在最前面插入一个 1digits.insert(digits.begin(), 1);return digits;}
};

四、复杂度分析

  • 时间复杂度: O(n)(最坏情况下需要遍历整个数组)

  • 空间复杂度: O(1)(如果允许修改输入数组)

相关文章:

  • js中显示为[object Object]
  • linux下使用php修改php.ini的session.save_path无效的解决办法
  • 6.(vue3.x+vite)动态挂载组件并传递参数和方法
  • RK3588RK3576实现 HW-ID DTB(动态加载不同的Kernel DTB)功能
  • 使用基数树优化高并发内存池(替代加锁访问的哈希表和红黑树)
  • 通过导入 Excel 的方式复制文件或文件夹
  • 面试题:C++11在C++98基础上增加了哪些内容?
  • ChatUI 3.0 正式发布,“对话式交互” 开源组件库
  • MCP 协议知识分享
  • python scikit-learn中常用的数据集
  • LeetCode算法题(Go语言实现)_50
  • 什么是车规级MCU?STM32也能上车规级场景?
  • 模拟电路需要了解的一些基础知识(部分)
  • Dify部署过程中的错误和解决方案汇总
  • DeepSeek+大数据分析快速应用落地
  • ThinkPHP8可能遇到问题一:save保存时出现验证器的信息
  • Oracle--了解Oracle
  • 批量将不同位置的多个文件夹合并到一个文件夹
  • Android Jetpack是什么与原生android 有什么区别
  • D55126漏电保护器芯片深度解析:紧凑型SOP8封装的高性能解决方案
  • 报社网站开发做什么/网络推广推广
  • 怎么做便民信息网站/离我最近的广告公司
  • 做视频网站玩什么配置/关键词优化公司费用多少
  • 做网站是否需要自购服务器/网络营销怎么做推广
  • 做网络平台的网站有哪些/武汉seo网站排名优化公司
  • 旅游网站设计的目的/智能营销系统