zoukankan      html  css  js  c++  java
  • leecode刷题(7)-- 加一

    leecode刷题(7)-- 加一

    加一

    描述:

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

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

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

    示例1:

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

    示例2:

    输入:[0, 9]

    输出:[1, 0]

    解释:输入数组表示数字 9。

    思路:

    我们从后往前遍历数组,当遍历到最后一位的时候我们让数组的最后一位加 1,如果数组的最后一位是 9 的话,则需要进位,该位赋值为 0 。如果前面位的数组也是 9 的话,则需要继续向前进位,继续将 9 数字位赋值为 0 ,直至不再是 9 (当从后往前遍历到不再是 9 后我们又能执行加 1 操作啦)。这里有一个细节,如果数组的第一位是 9 的话,加 1 后会产生新的一位,所以我们将该位赋值为 0 后还需要将数组长度加 1 ,然后将 数组[0] = 1。

    代码如下:

    import java.util.Arrays;
    
    public class PlusOne {
    	public int[] plusOne(int[] digits) {
    		int n = digits.length;
    		for (int i = digits.length - 1; i >= 0; --i) {
    			if (digits[i] < 9) {
    				++digits[i];
    				return digits;
    			}
    			digits[i] = 0;
    		}
    		int[] res = new int[n + 1];
    		res[0] = 1;
    		return res;
    	}
    
    	public static void main(String[] args) {
    		int[] a = {1,2,9};
    		PlusOne plusOne = new PlusOne();
    		int[] b = plusOne.plusOne(a);
    		System.out.println(Arrays.toString(b));
    	}
    }
    
  • 相关阅读:
    RedHat5.8 编译内核驱动 合成initrd.img
    matrix-gui-2.0 将javascript文件夹改成js文件夹
    使用PHP配置文件
    Ubuntu 16.10 Apache PHP Server
    Ubuntu 16.10 中文环境 Shell输出英文提示
    制作SD卡img文件,并扩容
    Linux syslogd
    Windows cmd findstr
    jquery ztree异步搜索
    怎样在点击li时添加样式,移除兄弟样式
  • 原文地址:https://www.cnblogs.com/weixuqin/p/10203452.html
Copyright © 2011-2022 走看看