LeetCode 769 最多能完成排序的块[贪心] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 769 最多能完成排序的块[贪心] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路:
一道想通了就不那么麻烦的题目,关键在于怎么去思考和读懂题目意思,题目意思是说将当前数组分块,分块后拼起来排序后结果和原数组排序后结果一致,这就隐含要求每个分块区间的数要和其原下标对应,即每个区间中的最大值要和该区间最大下标一致,否则会出现比当前区间最大数小的数排在后面的区间了,这样就不符合题意了,代码如下:

class Solution 
public:
    int maxChunksToSorted(vector<int>& arr) 
        int res = 0, curMax = 0;
        for(int i = 0; i < arr.size(); i ++) 
            curMax = max(curMax, arr[i]);
            if(curMax == i) res ++;
                                  
        return res;                                                                                                                    
    
;

以上是关于LeetCode 769 最多能完成排序的块[贪心] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 0769. 最多能完成排序的块

LeetCode 1790. 仅执行一次字符串交换能否使两个字符串相等 / 817. 链表组件 / 769. 最多能完成排序的块

每日一题769. 最多能完成排序的块

LeetCode 768 最多能完成排序的块II[贪心 map] HERODING的LeetCode之路

769. 最多能完成排序的块

每日一题768. 最多能完成排序的块 II