每日一题768. 最多能完成排序的块 II
Posted 爱写Bug的王六六
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一题768. 最多能完成排序的块 II相关的知识,希望对你有一定的参考价值。
参考k神题解就行,写的很详细:
https://leetcode.cn/problems/max-chunks-to-make-sorted-ii/solution/zui-duo-neng-wan-cheng-pai-xu-de-kuai-ii-deng-jie-/
辅助栈
排序块定义:
- 排序块 充分条件: 设此块中最大数字为 head , 若此块后面的所有数字都 >= head ,则此块为排序块。
- 排序块 最短长度为 1,即单个元素可以独立看作一个排序块。
注意栈中存储的是一个块中的最大值,遍历到下一个元素时,如果这个元素比栈顶之下的元素小,那么,栈顶之下的元素应该加入到栈顶元素所在的块中,所以,这里弹出的时候要注意,比较的是栈顶之下的元素与当前遍历到的元素。
请看代码中的示例,最后栈中有几个元素就代表有几个块:
class Solution
以上是关于每日一题768. 最多能完成排序的块 II的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 768 最多能完成排序的块II[贪心 map] HERODING的LeetCode之路
数据结构与算法之深入解析“最多能完成排序的块II”的求解思路与算法示例
LeetCode 1790. 仅执行一次字符串交换能否使两个字符串相等 / 817. 链表组件 / 769. 最多能完成排序的块