算法:大数加1

发布时间:2026/7/2 7:35:06
算法:大数加1 大数加1题目描述示例算法实现题目描述给定一个表示 大整数 的整数数组 digits其中 digits[i] 是整数的第 i 位数字。这些数字按从左到右从最高位到最低位排列。这个大整数不包含任何前导 0。将大整数加 1并返回结果的数字数组。示例示例1 输入digits[1,2,3]输出[1,2,4]解释输入数组表示数字123。 加1后得到1231124。 因此结果应该是[1,2,4]。 示例2 输入digits[4,3,2,1]输出[4,3,2,2]解释输入数组表示数字4321。 加1后得到432114322。 因此结果应该是[4,3,2,2]。 示例3 输入digits[9]输出[1,0]解释输入数组表示数字9。 加1得到了9110。 因此结果应该是[1,0]。 提示1digits.length1000digits[i]9digits 不包含任何前导0。算法实现使用java实现的算法如下publicint[]plusOne(int[]digits){intindexdigits.length-1;while(index0){intsumdigits[index]1;if(sum!10){//说明不满足进1则退出循环digits[index]sum;break;}//如果10 满足进1则设置为0digits[index]0;if(index-10){//判断数组是否越界break;}intpreIndexindex-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[]resultnewint[digits.length1];result[0]1;returnresult;}returndigits;}