加一

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

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

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

示例 1:

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

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

思路:设定一个进位(flag=0),当进位时,设为true,并把当前位设为0。当最高位产生进位时,需要新建一个数组,将最高位设为1,其余位置填入原数组值。
注意:当不产生进位时,当前位置数值+1后,应跳出循环

class Solution {
    public int[] plusOne(int[] digits) {
        
        
       int cur=0;
        
        for(int i=digits.length-1;i>=0;i--) {
        	
        	if(digits[i]<9)
        	{
        		digits[i] = digits[i]+1;
                cur = 0;
        		break;
        	}
        	else {
				digits[i] = 0;
				cur = 1;
			}
        
        	
        }
        
        if(cur ==1) {
        	
        	int[] result = new int[digits.length+1];
        	
        	result[0] = 1;
        	
        	for(int i=1;i<digits.length-1;i++) {
        		
        		result[i]= digits[i]; 
        	}
        	
        	return result;
        	
        }
	
		
        else {
        	return digits;
        }
        
    }
}

运行之后竟然发现,运行时间为0ms,击败了100%的人,开心了好久。哈哈
加一