Recca Chao 的 gitHub page

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

View on GitHub

Kotlin Leetcode - 2220. Minimum Bit Flips to Convert Number

題目連接

class Solution {
    fun minBitFlips(start: Int, goal: Int): Int {

    }
}

解題思路

這一題考的是對二進位數字操作的熟悉度

我們知道當 start 和 goal 的某個 bit 不同時

這個 bit 進行 xor 運算時必然會得到 1

所以我們可以直接對 startgoal 進行 xor 運算後

再算出到底有幾個 1 bit 即可

Kotlin 參考解答

使用單個表達式的解法如下

class Solution {
    fun minBitFlips(start: Int, goal: Int): Int =
    (start xor goal).countOneBits()
}

由於 leetcode 的 Kotlin 版本比較舊

還沒有 countOneBits()

所以我們得換個寫法

class Solution {
    fun minBitFlips(start: Int, goal: Int): Int =
    Integer.bitCount(start xor goal)
}

回到 leetcode 列表