LeetCode 66 _ One Plus 加一 (Easy)

Description:

Given two binary strings, return their sum (also a binary string).

The input strings are both non-empty and contains only characters 1 or 0.

Example 1:

Input: a = "11", b = "1"
Output: "100"

Example 2:

Input: a = "1010", b = "1011"
Output: "10101"

Solution:

等会再写!

Code:

public int[] plusOne(int[] digits) {
	int n = digits.length;
	int count = n -1;
	if (digits[n-1] != 9) {
		digits[count]++;
		return digits;
	}else {
		while (digits[count] == 9) {
			if (count == 0) {
				int[] res = new int[n+1];
				res[0] = 1;
				return res;
			}else {
				digits[count] = 0;
				count --;
			}
		}
		digits[count] ++;
	}
	return digits;
}

  

提交情况:

Runtime: 0 ms, faster than 100.00% of Java online submissions for Plus One.

Memory Usage: 37.2 MB, less than 55.00% of Java online submissions for Plus One.

LeetCode讨论区有一个更为简洁的方法:

public int[] plusOne(int[] digits) {
    int n = digits.length;
    for(int i=n-1; i>=0; i--) {
        if(digits[i] < 9) {
            digits[i]++;
            return digits;
        }
        digits[i] = 0;
    }
    
    int[] newNumber = new int [n+1];
    newNumber[0] = 1;
    
    return newNumber;
}
 "11", b = "1"
Output: "100"

Example 2:

Input: a = "1010", b = "1011"
Output: "10101"

猜你喜欢

转载自www.cnblogs.com/zingg7/p/10666613.html