Leetcode—768. 最多能完成排序的块 II【困难】

2024每日刷题(149)

Leetcode---768. 最多能完成排序的块 II

实现代码

cpp 复制代码
class Solution {
public:
    int maxChunksToSorted(vector<int>& arr) {
        // 分块
        // A | B
        // A 块中最大值肯定要小于 B 块中最小值!才能分块
        int ans = 1;

        int n = arr.size();
        vector<int> maxL(n);
        vector<int> minR(n);

        for(int i = 0; i < n; i++) {
            maxL[i] = i == 0 ? arr[0]: max(maxL[i - 1], arr[i]);
        }

        for(int i = n - 1; i >= 0; i--) {
            minR[i] = i == n - 1 ? arr[n - 1]: min(minR[i + 1], arr[i]);
        }

        // 在这里如果arr有n个元素, 那么最多切n-1块, 所以ans初始值是1, 即末尾最后一刀
        for(int i = 0; i < n - 1; i++) {
            if(maxL[i] <= minR[i + 1]) {
                ans++;
            }
        }
        return ans;
    }
};

运行结果


之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

相关推荐
17(无规则自律)4 分钟前
DFS连通域统计:岛屿数量问题及其变形
c++·算法·深度优先
白眼黑刺猬4 分钟前
实时库存预警: 如何实现秒级更新且保证在高并发下不出现“超卖”显示错误?
大数据·面试·职场和发展
笨笨饿21 分钟前
34_数据结构_栈
c语言·开发语言·数据结构·人工智能·嵌入式硬件·算法
明灯伴古佛28 分钟前
面试:为什么synchronized是一个悲观锁
java·面试·职场和发展
im_AMBER33 分钟前
Leetcode 152 被围绕的区域 | 岛屿数量
数据结构·算法·leetcode·深度优先·广度优先·图搜索算法
吕司44 分钟前
LeetCode Hot Code——最大子数组和
数据结构·算法·leetcode
XiYang-DING1 小时前
【LeetCode】144. 二叉树的前序遍历
算法·leetcode·职场和发展
优化控制仿真模型1 小时前
【26年四级最新】英语四级高频核心词汇1500+真题PDF电子版
经验分享·pdf
WolfGang0073211 小时前
代码随想录算法训练营 Day28 | 动态规划 part01
算法·动态规划
光电笑映1 小时前
STL 源码解密:unordered 系列容器的底层复用与哈希策略
算法·哈希算法·散列表