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"
LeetCode 66 _ One Plus 加一 (Easy)
原文:https://www.cnblogs.com/zingg7/p/10666613.html