leetcode66加一

leetcode66加一

解题思路:
已在代码处,清晰说明。
详见代码。

class Solution {
    public int[] plusOne(int[] digits) {
       	for(int i=digits.length-1;i>=0;i--){		//倒序遍历
			 if(digits[i]==9){				//如果digits[i]==9时,为了进位将digits[i]=0;
				 digits[i]=0;
			 }else{				//如果最后一位不为9则,给最后一位+1,跳出循环
			       digits[i]=digits[i]+1;
			       break;
			 }
		}
		if(digits[0]==0){					//如果数组的第一位为0,则说明数组的所有										//为都为9,创建新数组,长度为digits.length+1
			int[] arr=new int[digits.length+1]; //将第一位置为1,其余为为0即可。
			arr[0]=1;
			for(int i=1;i<arr.length;i++){
			    arr[i] = digits[i] ;
			}
			return arr;
		}
		return digits;
    } 
}