题目描述:
数组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
收获:
代码不难,就是比较巧妙。思路可以记一下