Recca Chao 的 gitHub page

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

View on GitHub

Kotlin Leetcode - 485. Max Consecutive Ones

題目連接

class Solution {
    fun findMaxConsecutiveOnes(nums: IntArray): Int {

    }
}

解題思路

這一題考的是陣列處理

基本上就是經過所有元素

統計出連續的個數後

和現在的最大連續個數進行比較

Kotlin 參考解答

forEach 可以這樣寫

class Solution {
    fun findMaxConsecutiveOnes(nums: IntArray): Int {
        var ans = 0
        var max = 0
        nums.forEach {
            if(it == 1) {
                max++
            } else {
                ans = maxOf(ans, max)
                max = 0
            }
        }
        return maxOf(ans, max)
    }
}

我們也可以將 if 判斷用 when 簡化過後,變成下面的寫法

class Solution {
    fun findMaxConsecutiveOnes(nums: IntArray): Int {
        var ans = 0
        var max = 0
        nums.forEach {
            when (it) {
                1 -> max++
                else -> ans = maxOf(ans, max).also { max = 0 }
            }
        }
        return maxOf(ans, max)
    }
}

回到 leetcode 列表