Kotlin Leetcode - 2220. Minimum Bit Flips to Convert Number
class Solution {
fun minBitFlips(start: Int, goal: Int): Int {
}
}
解題思路
這一題考的是對二進位數字操作的熟悉度
我們知道當 start 和 goal 的某個 bit 不同時
這個 bit 進行 xor
運算時必然會得到 1
所以我們可以直接對 start
和 goal
進行 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 列表