8000 add 067 solution · zykjcom/leetcode@4a6f773 · GitHub
[go: up one dir, main page]

Skip to content

Commit 4a6f773

Browse files
committed
add 067 solution
1 parent 425f188 commit 4a6f773

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

problems/067. Add Binary/README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# 67. Add Binary
2+
3+
## #1 进位相加
4+
5+
### 思路
6+
7+
整数加法本身不是特别难的问题,但是因为采用不同的存储方式来表示整数,导致我们在写整数加法的时候需要特别处理,`LeetCode`上关于整数表示方式有:链表、数组、字符串。解决这类问题的基本思路都是从低位开始遍历,通过进位相加法来处理相加后每一位得到的结果。
8+
9+
### 算法
10+
11+
```java
12+
class Solution {
13+
public String addBinary(String a, String b) {
14+
StringBuffer sb = new StringBuffer();
15+
int i = a.length()-1;
16+
int j = b.length() - 1;
17+
int carry = 0;
18+
while(i >= 0 || j >=0){
19+
int sum = carry;
20+
if(i>=0) sum+=a.charAt(i--) - '0';
21+
if(j>=0) sum+=b.charAt(j--) - '0';
22+
sb.append(sum%2);
23+
carry = sum/2;
24+
}
25+
if(carry!=0) sb.append(carry);
26+
return sb.reverse().toString();
27+
}
28+
}
29+
```
30+
31+
### 复杂度分析:
32+
33+
- 时间复杂性:$O(n)$
34+
- 空间复杂性:$O(1)$
35+

0 commit comments

Comments
 (0)
0