LeetCode之Max Chunks To Make Sorted(Kotlin)

480 阅读1分钟

问题:


方法: 满足要求最多的块数是arr.length,这种情况需要每个元素正好在索引的位置,如0在index 0的位置,1在index 1的位置,进而可以推导出符合条件的chunk范围即(i, j)需满足sum(arr[i]-i)等于0,根据这一条件即可以获取最终结果。

class MaxChunksToMakeSorted {
    fun maxChunksToSorted(arr: IntArray): Int {
        var sum = 0
        var result = 0
        for (el in arr.withIndex()) {
            sum += el.value
            sum -= el.index
            if (sum == 0) {
                result+=1
            }
        }
        return result
    }
}

fun main(args: Array<String>) {
    val input = intArrayOf(0, 2, 1)
    val maxChunksToMakeSorted = MaxChunksToMakeSorted()
    print(maxChunksToMakeSorted.maxChunksToSorted(input))
}

有问题随时沟通

具体代码实现可以参考Github