Recca Chao 的 gitHub page

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

View on GitHub

Kotlin Leetcode - 1342. Number of Steps to Reduce a Number to Zero

題目連接

class Solution {
    fun numberOfSteps(num: Int): Int {

    }
}

解題思路

這一題考的是數字的簡單運算

我們用一個 while 迴圈

就可以算出答案

四則運算的部分由於很單純

所以也可以使用位元運算進行

Kotlin 參考解答

點擊展開解答
class Solution {
    fun numberOfSteps(num: Int): Int {
        var privateNum = num
        var numOfStepsToZero = 0
        while (privateNum != 0) {
            when {
                privateNum % 2 == 0 -> privateNum /= 2
                else -> privateNum -= 1
            }
            numOfStepsToZero++
        }
        return numOfStepsToZero
    }
}

將上述的四則運算改成位元運算的方式

class Solution {
    fun numberOfSteps(num: Int): Int {
        var privateNum = num
        var numOfStepsToZero = 0
        while (privateNum != 0) {
            when {
                privateNum and 1 == 0 -> privateNum = privateNum shr 1
                else -> privateNum--
            }
            numOfStepsToZero++
        }
        return numOfStepsToZero
    }
}

回到 leetcode 列表