Skip to content

Commit 99805d2

Browse files
authored
Create 371-Sum-of-Two-Integers.py
1 parent 7ca9c48 commit 99805d2

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

371-Sum-of-Two-Integers.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution:
2+
def getSum(self, a: int, b: int) -> int:
3+
def add(a, b):
4+
if not a or not b:
5+
return a or b
6+
return add(a^b, (a&b) << 1)
7+
8+
if a*b < 0: # assume a < 0, b > 0
9+
if a > 0:
10+
return self.getSum(b, a)
11+
if add(~a, 1) == b: # -a == b
12+
return 0
13+
if add(~a, 1) < b: # -a < b
14+
return add(~add(add(~a, 1), add(~b, 1)),1) # -add(-a, -b)
15+
16+
return add(a, b) # a*b >= 0 or (-a) > b > 0

0 commit comments

Comments
 (0)