leetcode 995. K 连续位的最小翻转次数(贪心算法)
在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0。
返回所需的 K 位翻转的最小次数,以便数组没有值为 0 的元素。如果不可能,返回 -1。
示例 1:
输入:A = [0,1,0], K = 1
输出:2
解释:先翻转 A[0],然后翻转 A[2]。
解题思路
贪心思路:遍历每个0元素,对其进行翻转,使用队列维护翻转的子数组的首位下标
代码
class Solution {public int minKBitFlips(int[] A, int K) {int res=0;LinkedList<Integer> queue=new LinkedList<>();for (int i = 0; i < A.length; i++) {if(!queue.isEmpty()&&i-K+1>queue.getFirst())
//当前位置不在队头翻转的子数组范围内,所以移除队头元素queue.removeFirst();
//剩余队列中的元素个数,代表当前位置被多少个已经翻转的子数组覆盖,即当前位置的翻转次数,偶数次翻转是本身,奇数次翻转是相反数,以此判定当前位置的元素是否为0if(queue.size()%2==A[i]){if(i+K>A.length) return -1;//不能恰好被k长度子数组覆盖res++;queue.addLast(i);}}return res;}
}
leetcode 995. K 连续位的最小翻转次数(贪心算法)相关推荐
- LeetCode 995. K 连续位的最小翻转次数(差分思想)
文章目录 1. 题目 2. 解题 1. 题目 在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 ...
- 995. K 连续位的最小翻转次数
链接:995. K 连续位的最小翻转次数 题解: https://leetcode-cn.com/problems/minimum-number-of-k-consecutive-bit-flips/ ...
- Leetcode-滑窗/差分数组-995. K 连续位的最小翻转次数
题目995. K 连续位的最小翻转次数: 题解: 方法一:队列 + 滑窗(from 负雪明烛) class Solution { public:int minKBitFlips(vector<i ...
- 995.K连续位的最小翻转次数(唯唯诺诺)
如题: 在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0. 返回所需的 K 位翻转的最小次数 ...
- LeetCode-995. K连续位的最小翻转次数(Minimum Number of K Consecutive Bit Flips)
K连续位的最小翻转次数 在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0. 返回所需的 K ...
- leetCode-995:K 连续位的最小翻转次数
题目描述: 在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0. 返回所需的 K 位翻转的最小 ...
- LeetCode 1318. 或运算的最小翻转次数(位运算)
1. 题目 给你三个正整数 a.b 和 c. 你可以对 a 和 b 的二进制表示进行位翻转操作,返回能够使按位或运算 a OR b == c 成立的最小翻转次数. 「位翻转操作」是指将一个数的二进制表 ...
- 算法--运算的最小翻转次数
题目 给你三个正整数 a.b 和 c.你可以对 a 和 b 的二进制表示进行位翻转操作,返回能够使按位或运算 a OR b == c 成立的最小翻转次数.「位翻转操作」是指将一个数的二进制表示任何单个 ...
- 阿里笔试题:或运算的最小翻转次数 C++
阿里笔试题:或运算的最小翻转次数 C++ 题目描述 输入输出示例 解题思路 代码 题目描述 给出一个数字n,表示有n组输入用例子,每一组输入给出三个正整数a.b.c,可以对a和b进行位翻转操作,每一次 ...
最新文章
- 第5关:32位快速加法器设计
- (十六) 整合spring cloud云架构 -使用spring cloud Bus刷新配置
- Java Socket 学习
- spring cloud构建互联网分布式微服务云平台-docker部署spring cloud项目
- 【Android工具】安卓魔力播放器moliplayer绿色无广告,手机DLNA播放器
- python3.7 安装pip3_Ubuntu16.04 安装python3.7和pip3
- 在那天的雪停息之前β
- C++经典问题:如果对象A中有对象成员B,对象B没有默认构造函数,那么对象A必须在初始化列表中初始化对象B?
- 第十二节: EF的三种模式(二) 之 ModelFirst模式(SQLServer为例)
- java 类的域_Java类中对象域的初始化
- 2017-2018网络攻防第四周作业
- 遍历树,找出所有叶子路径
- 编程之美:寻找发帖水王 扩展
- JSONP - 从理论到实践
- 213.打家劫舍II
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
- 最常用20000英语单词表_受够加班煎熬,我整理出10条职场人士最常用的透视表技巧!(下篇)...
- 图片alt标签是什么?如何优化Alt标签
- 中国历史上水平最高的十首诗词,你都读过吗?
- 初识c语言day07(五子棋)