leetcode #769. 最多能完成排序的块

题目描述:

数组arr是[0, 1, …, arr.length - 1]的一种排列,我们将这个数组分割成几个“块”,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。

思路:

遍历数组,如果区间最大值与索引值相同,则可以单独划分一个切片

代码:

class Solution:
    def maxChunksToSorted(self, arr: List[int]) -> int:
        ans = 0
        for i in range(len(arr)):
            if max(arr[:i+1])==i:
                ans += 1
        return ans

收获:

代码不难,就是比较巧妙。思路可以记一下

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页