Kotlin Leetcode - 371. Sum of Two Integers
class Solution {
fun getSum(a: Int, b: Int): Int {
}
}
解題思路
這一題測試的是 bitwise operation
做提前需要具備的知識是知道用位元運算的方式
計算加法的操作
假設 a b 均為單一 bit
a + b = (a and b) shl 1 + (a xor b)
a | b | a and b | a xor b | a + b |
---|---|---|---|---|
0 | 0 | 0 | 0 | 00 |
0 | 1 | 0 | 1 | 01 |
1 | 0 | 0 | 1 | 01 |
1 | 1 | 1 | 0 | 10 |
Kotlin 參考解答
搭配 kotlin 的 bitwise operation
實作的方式如下
class Solution {
fun getSum(a: Int, b: Int): Int {
var a = a
var b = b
while (b != 0) {
var carry = a and b
a = a xor b
carry = carry shl 1
b = carry
}
return a
}
}
回到 leetcode 列表