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;
    }
};

运行结果


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

相关推荐
Daorigin_com2 分钟前
道本科技三大系统形成的“合同—合规—法务”智能闭环!
科技·职场和发展·分类·服务发现·边缘计算·集成学习·敏捷流程
OCR_1337162127536 分钟前
护照OCR校验位技术解析:从算法逻辑到工程落地,筑牢证件核验安全线
人工智能·算法
Hello.Reader37 分钟前
算法基础(十三)——随机算法为什么有时主动引入随机性
java·数据库·算法
老鱼说AI1 小时前
现代 LangChain 开发指南:从 LCEL 原理到企业级 RAG 与 Agent 实战
java·开发语言·人工智能·深度学习·神经网络·算法·机器学习
小许同学记录成长1 小时前
基于幅度形态与参数聚类的工作模式判别
python·算法·scikit-learn
郝学胜-神的一滴1 小时前
Qt 入门 01-02: 开发环境搭建指南
开发语言·c++·qt·客户端
Languorous.1 小时前
C++数据结构高阶|布隆过滤器(Bloom Filter)深度解析:从原理到手写实现,面试高频考点全覆盖
数据结构·c++·面试
gumichef1 小时前
二叉树_堆
算法
Liangwei Lin2 小时前
LeetCode 70. 爬楼梯
算法
山河木马2 小时前
Emscripten 从 C/C++ 调用 JavaScript
前端·javascript·c++