美文网首页
LeetCode之Max Chunks To Make Sort

LeetCode之Max Chunks To Make Sort

作者: 糕冷羊 | 来源:发表于2020-06-22 16:05 被阅读0次

    问题:



    方法:
    满足要求最多的块数是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

    相关文章

      网友评论

          本文标题:LeetCode之Max Chunks To Make Sort

          本文链接:https://www.haomeiwen.com/subject/chzxfktx.html