Recca Chao 的 gitHub page

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

View on GitHub

Kotlin Leetcode - 3190. Find Minimum Operations to Make All Elements Divisible by Three

題目連接:https://leetcode.com/problems/find-minimum-operations-to-make-all-elements-divisible-by-three/

class Solution {
    fun minimumOperations(nums: IntArray): Int {
        
    }
}

解題思路

這一題考的是對陣列的處理

我們要找出陣列內所有無法被三整除的數字

利用 Kotlin 的 fold 函數或者 sumBy 函數

可以將這段邏輯簡化成單一表達式完成

Kotlin 參考解答

點擊展開解答

傳統使用 for loop 的寫法

class Solution {
    fun minimumOperations(nums: IntArray): Int {
        var res = 0;
        
        for(num in nums) {
            if(num % 3 > 0) res++;
        }

        return res;
    }
}

使用 fold 的版本

class Solution {
    fun minimumOperations(nums: IntArray) = nums.fold(0){acc, num -> if (num % 3 == 0) acc else acc + 1}
}

使用 sumBy 的版本

class Solution {
    fun minimumOperations(nums: IntArray) = nums.sumBy { if (it % 3 > 0) 1 else 0 }
}