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

LeetCode66——加一

LeetCode66——加一

题目描述:

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。

示例:

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

输入:digits = [1,9]
输出:[2,0]
解释:输入数组表示数字 19

输入:digits = [8 ,9,9, 9]
输出:[9 ,0,0 ,0]
解释:输入数组表示数字 8999

输入:digits = [9 ,9,9, 9]
输出:[1,0 ,0,0 ,0]
解释:输入数组表示数字 9999

思路:

1.末尾没有9——直接末尾元素加一即可加一

2.末尾有9——逆序找第一个不为9的元素并且将其加一 ,后面都变成0

3.全是9——新建个长度为原来数组长度+1的新数组{1,0,0,0,0…}即可

4.模拟实现数字进位

Result01

在这里插入图片描述

   public static int[] addOne(int[] arr){//初始i指向数组最后一个元素  逆序找第一个不为9的数字for (int i = arr.length - 1; i >= 0; i--) {if (arr[i] != 9) {//找到了不为9的元素 加一即可arr[i]++;//加一之后    后面全部置为0for (int j = i + 1; j < arr.length; j++) {arr[j] = 0;}return arr;}}//执行到这的时候说明未执行if (arr[i] != 9) return arr,证明数组中的元素全都是9// arr 中所有的元素均为 9 加一之后 新创建一个数组返回即可int[] ans = new int[arr.length + 1];ans[0] = 1;return ans;}

运行结果;
在这里插入图片描述

Result02

在这里插入图片描述

public static int[] addOne(int[] arr) {//模拟现实数字进位的机制for (int i = arr.length - 1; i >= 0; i--) {arr[i]++;//这一步对 10 取模 因为数组中每个元素只存储单个数字 所以只有9+1 模 10 ==0 其余的数字加一之后模10 都还是其本身arr[i] = arr[i] % 10;//如果进位之后模10不等于0 证明其是小于9的数 直接返回数组if (arr[i] != 0){return arr;}}//运行到这里的时候 说明进位后全为0 ,即原来数组的元素全是9 ,所以要新建数组arr = new int[arr.length + 1];arr[0] = 1;return arr;}

在这里插入图片描述

http://www.lryc.cn/news/205535.html

相关文章:

  • CV计算机视觉每日开源代码Paper with code速览-2023.10.23
  • C语言 sizeof 函数内部进行计算
  • 导致爬虫无法使用的原因有哪些?
  • paddlepaddle使用实践过程中的问题记录
  • MySQL数据库 #3
  • XQ350441.0、XQ350641.0、XQ350441.1、XQ350641.1、XQ350441.2、XQ350641.2三位五通电磁气动阀
  • 降本增效神器?Share Creators 智能数字资产管理系统真香!
  • 2023年中国汽车差速器需求量、竞争现状及行业市场规模分析[图]
  • 【ceph】ceph集群的节点机器重启,导致磁盘的lvm消失,如何恢复呢~~满满的都是干货
  • 竞赛选题 深度学习人脸表情识别算法 - opencv python 机器视觉
  • 异步为什么会造成 HTTP 队首阻塞?
  • 使用hibernate,报出ORA-00933_ SQL 命令未正确结束
  • 易点易动设备管理系统:提升企业备件管理和维修效率的智能解决方案
  • 新上线游戏产品需不需要防御?
  • Linux中的开发工具(yum,vim,gcc/g++,gdb,Makefile,git)
  • 什么是自动证书管理环境(ACME)
  • 探索光模块的MSA多源协议
  • 《算法通关村——双指针妙用》
  • postgresql|数据库迁移|ora2pg工具的web界面介绍
  • 【zookeeper】zk的ZAB原子广播协议
  • 【问题思考总结】为什么分布函数右连续要左闭右开
  • 解决 edge 浏览器开发者工具出不来的问题
  • 嵌入式算法——傅里叶变换算法
  • 让数据“动”起来:Python动态图表制作详解
  • Python获取网络适配器接口的类型、状态IPv4和IPv6地址
  • 无敌了!Redis进军磁盘存储!
  • 中文编程开发语言工具编程实际案例:台球棋牌混合计时计费软件使用的编程构件说明
  • 在线客服系统源码 客服系统源码
  • 抽象轻松java——简易图书馆前置
  • 图书推荐管理系统Python+Django网页界面+协同过滤推荐算法