news 2026/7/2 7:35:00

算法:大数加1

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法:大数加1

大数加1

  • 题目描述
  • 示例
  • 算法实现

题目描述

给定一个表示 大整数 的整数数组 digits,其中 digits[i] 是整数的第 i 位数字。这些数字按从左到右,从最高位到最低位排列。这个大整数不包含任何前导 0。

将大整数加 1,并返回结果的数字数组。

示例

示例1: 输入:digits=[1,2,3]输出:[1,2,4]解释:输入数组表示数字123。 加1后得到123+1=124。 因此,结果应该是[1,2,4]。 示例2: 输入:digits=[4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字4321。 加1后得到4321+1=4322。 因此,结果应该是[4,3,2,2]。 示例3: 输入:digits=[9]输出:[1,0]解释:输入数组表示数字9。 加1得到了9+1=10。 因此,结果应该是[1,0]。 提示:1<=digits.length<=1000<=digits[i]<=9digits 不包含任何前导0

算法实现

使用java实现的算法如下:

publicint[]plusOne(int[]digits){intindex=digits.length-1;while(index>=0){intsum=digits[index]+1;if(sum!=10){//说明不满足进1,则退出循环digits[index]=sum;break;}//如果==10 满足进1,则设置为0digits[index]=0;if(index-1<0){//判断数组是否越界break;}intpreIndex=index-1;//计算前一个数目digits[preIndex]+=1;//上一个+1,这个+1是进位导致if(digits[preIndex]!=10){//说明不满足进1,则退出循环break;}//满足进1,则设置为0digits[preIndex]=0;//计算preIndex的上一位index-=2;//注意是-2,不是-1}// end whileif(digits[0]==0){//说明原数组全部元素是9int[]result=newint[digits.length+1];result[0]=1;returnresult;}returndigits;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 7:32:34

如何高效使用智能填充工具:设计师的完整策略指南

如何高效使用智能填充工具&#xff1a;设计师的完整策略指南 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 你是否曾经为在复杂形状中手动排列数百个图形元素而烦恼&#xff1f;Fi…

作者头像 李华
网站建设 2026/7/2 7:30:04

软件测试项目职责与分工以及测试流程

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、项目职责与分工1、产品经理 ------> 负责设计产品的原型图和PRD。2、项目经理 ------>负责并保证高质量的产品按时完成和发布的专职管理人员。3、开发…

作者头像 李华
网站建设 2026/7/2 7:28:43

如何用小说下载器一键保存200+网站的小说资源:完整指南

如何用小说下载器一键保存200网站的小说资源&#xff1a;完整指南 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 在数字阅读时代&#xff0c;你是否担心过追更的小说突然下架&#…

作者头像 李华