Recca Chao 的 gitHub page

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

View on GitHub

Kotlin Leetcode - 2894. Divisible and Non-divisible Sums Difference

題目連接:https://leetcode.com/problems/divisible-and-non-divisible-sums-difference/

class Solution {
    fun differenceOfSums(n: Int, m: Int): Int {
        
    }
}

解題思路

這一題是處理 1 到 n 的一系列數字運算

利用 Kotlin 的 range 以及 filter

可以很快地找到題目要求的 num1num2

另外也可以直接將能被 m 整除的數字減掉

這樣的話可以直接使用 fold 來回答這個題目

Kotlin 參考解答

依照題目使用 num1 num2 進行回答

class Solution {
    fun differenceOfSums(n: Int, m: Int): Int {
        val num1 = (1..n).filter { it % m != 0 }.sum()
        val num2 = (1..n).filter { it % m == 0 }.sum()
        return num1 - num2
    }
}

使用 fold 的解法

class Solution {
    fun differenceOfSums(n: Int, m: Int) = (1..n).fold(0){acc, num -> if (num % m == 0) acc - num else acc + num}
}