lc 768. Max Chunks To Make Sorted II

https://leetcode.com/problems/max-chunks-to-make-sorted-ii/description/\

 

读题半天没看懂。

就是说,分成若干段,段内排序得到a

直接整个排序得到b

a和b要求一样。

最多分多少段。

利用一个end记录当前到最远,

稳定排序情况下,每个都往后看最远,直到眼前的index==end

code:

class Solution:
    def maxChunksToSorted(self, arr):
        """
        :type arr: List[int]
        :rtype: int
        """
        arr=[(arr[i],i) for i in range(len(arr))]
        arr.sort()
        i=0
        ans=0
        while i<len(arr):
            ans+=1
            end=arr[i][1]
            while i!=end:
                i+=1
                end=max(end,arr[i][1])
            i+=1
        return ans

 

posted @ 2018-09-11 16:52  Cloud.9  阅读(130)  评论(0编辑  收藏  举报