news 2026/7/23 2:19:44

思维题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
思维题

lc995

贪心+滑窗

队列维护翻转区间的左端点,遍历数组时判断当前位置是否需要翻转,能翻转则记录左端点并计数,无法翻转则返回-1,最终得到最小翻转次数

class Solution {//贪心地从左到右依次翻转
public:
int minKBitFlips(vector<int>& A, int K) {
int n=A.size(),ans=0;
queue<int> q;
for(int i=0;i<n;++i){
if(!q.empty()&& i-q.front()>=K) q.pop();

//维护与当前位置的距离<=K的翻转位置(左端点)
if((A[i]+q.size())%2==0){ //需要翻转
if(i+K>n) return -1; //无法翻转
q.push(i);
++ans;
}
}
return ans;
}
};

队列动态维护「当前位置被翻转了几次」,快速判断要不要翻转,从而用贪心策略找到最少翻转次数

队列的大小 = 当前位置 i 被翻转的次数

从左到右遍历,遇到 0 就翻转它开头的 K 位,因为如果现在不翻,后面就没机会了

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 12:37:25

Java版LeetCode热题100之二叉树的层序遍历:从BFS到多维拓展的全面解析

Java版LeetCode热题100之二叉树的层序遍历&#xff1a;从BFS到多维拓展的全面解析本文将深入剖析 LeetCode 第102题「二叉树的层序遍历」&#xff0c;不仅提供广度优先搜索&#xff08;BFS&#xff09;的标准解法&#xff0c;还涵盖算法原理、复杂度分析、面试技巧、工程应用及…

作者头像 李华
网站建设 2026/7/17 12:35:25

基于NSGA-II算法的电动汽车充电负荷优化研究 - MATLAB代码实现

Matlab ‖ 峰谷电价引导下电动汽车充电负荷优化-基于NSGA-II算法 关键词&#xff1a;电动汽车 充电负荷 NSGA-II算法 峰谷电价 参考文档&#xff1a;《基于峰谷分时电价引导下的电动汽车充电负荷优化》基本复现&#xff1b; 仿真平台&#xff1a;MATLAB 研究内容&#xff1…

作者头像 李华
网站建设 2026/7/17 20:03:20

学霸同款8个AI论文写作软件,MBA论文高效搞定!

学霸同款8个AI论文写作软件&#xff0c;MBA论文高效搞定&#xff01; AI 工具如何助力论文写作&#xff0c;让学术之路更高效 在当今快速发展的学术环境中&#xff0c;MBA 学生和科研工作者面临着越来越高的论文写作要求。传统的写作方式不仅耗时费力&#xff0c;还容易因格式不…

作者头像 李华