public int[] plusOne(int[] digits) {
		Stack<Integer> stack = new Stack<Integer>();
		int overFlow = 1;
		for (int i = digits.length - 1; i >= 0; --i) {
			int sum = overFlow + digits[i];
			int digit = sum % 10;
			stack.push(digit);
			overFlow = sum / 10;
		}
		if (overFlow != 0)
			stack.push(overFlow);

		int n = stack.size();
		int[] res = new int[n];
		for (int i = 0; i < n; ++i) {
			res[i] = stack.pop();
		}
		return res;
	}