Recca Chao 的 gitHub page

推廣網站開發,包含 Laravel 和 Kotlin 後端撰寫、自動化測試、讀書心得等。Taiwan Kotlin User Group 管理員。

View on GitHub

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 列表