66. Plus One

本文介绍了一种解决整数按位存储于数组中并实现加一操作的方法。通过遍历数组处理进位,若最高位仍有进位则新建数组。文章提供了完整的Java代码实现。
Plus One

题解:一个整数按位存储于一个int数组中,排列顺序为:最高位在array[0] ,最低位在[n-1],例如:98,存储为:array[0]=9; array[1]=8;

思路:

从数组的最后一位开始加1,需要考虑进位,如果到[0]位之后仍然有进位存在,需要新开一个长度为(n.length + 1)的数组,拷贝原来的数组。

代码:
public class Solution {
    public int[] plusOne(int[] digits) {
        if(digits.length == 0) return digits;
        for(int i = digits.length - 1; i >= 0; i--){
            if(digits[i] != 9){
                digits[i]++;
                return digits;  //如果没有进位了就直接输出
            }else digits[i] = 0;
        }
        int[] result=new int[digits.length+1];  //当执行到这一步时,则表示已经向最高位进了一个1,例如数为999时
        result[0]=1; 
        return result;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值