995. K 连续位的最小翻转次数
链接:995. K 连续位的最小翻转次数
题解:
https://leetcode-cn.com/problems/minimum-number-of-k-consecutive-bit-flips/solution/hua-dong-chuang-kou-shi-ben-ti-zui-rong-z403l/
https://leetcode-cn.com/problems/minimum-number-of-k-consecutive-bit-flips/solution/hua-dong-chuang-kou-shi-ben-ti-zui-rong-z403l/
class Solution {public:int minKBitFlips(vector<int>& A, int K) {queue<int> que;int len = A.size();int cnt = 0;for(int i = 0; i < len; ++i) {// 队列头的元素的位置到i超过K个位置,所以对i够不成反转控制,出对if(!que.empty() && que.front() + K <= i) {que.pop();}// 判断入队列条件if(que.size() % 2 == A[i]) {// 后面没有K个位置可以反转if(i + K > len) {return -1;}que.push(i);++cnt;}}return cnt;}
};
暴力,贪心
1.从第i下标开始,i下标前面的元素都已经是反转过变成1的
2.如果当前i是0,则将当前i后面K-1的元素都变为1
3.注意i的下标遍历的位置是A.length-K+1
class Solution {public int minKBitFlips(int[] A, int K) {int res = 0;for (int i = 0; i < A.length - K + 1; i++) {if (A[i] == 0) {for (int j = i; j < A.length && j < i + K; j++) {A[j] = 1 - A[j];}res++;}}for (int i = A.length - K + 1; i < A.length; i++) {if (A[i] == 0) return -1;}return res;}
}
995. K 连续位的最小翻转次数相关推荐
- Leetcode-滑窗/差分数组-995. K 连续位的最小翻转次数
题目995. K 连续位的最小翻转次数: 题解: 方法一:队列 + 滑窗(from 负雪明烛) class Solution { public:int minKBitFlips(vector<i ...
- leetcode 995. K 连续位的最小翻转次数(贪心算法)
在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0. 返回所需的 K 位翻转的最小次数,以便数 ...
- LeetCode 995. K 连续位的最小翻转次数(差分思想)
文章目录 1. 题目 2. 解题 1. 题目 在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 ...
- 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进行位翻转操作,每一次 ...
最新文章
- Github中文项目排行榜,你永远想不到开发者都用它干了什么
- 从入门到精通系列Java高级工程师路线介绍,附答案
- Cache系列:spring-cache简单三步快速应用ehcache3.x-jcache缓存(spring4.x)
- 20211108 能观能控,可稳可测
- 八皇后问题求解动态图形演示
- 训练日志 2019.3.10
- ONNX系列七 --- 在Python中使用可移植的ONNX AI模型
- 二级分类php代码,php smarty 二级分类代码和模版循环例子
- VIM文本编辑器相关命令实验总结
- 同步或者重构Activiti Identify用户数据的多种方案比较
- NEFU OJ 574 丑数
- 汉芯门主角制造另外一个汉芯?
- android app英文 英文模式,英语场景主题会话与单词app
- java自定义注解处理器_Android自定义注解处理器
- html静态页面作业——海贼王中乔巴漫画(5页) 学生动漫网页设计模板下载 海贼王大学生HTML网页制作作品 简单漫画网页设计成品
- 百度地图定位以及方向传感器的调用
- golang结构体指针
- 你不知道的SQL语言数据库原理
- 【阅读论文】第六章--计算机辅助检测--博-自动化眼底图像分析技术可筛查糖尿病患者的视网膜疾病
- 魔兽争霸war3心得体会(二):狗转蜘蛛,DK光环+游侠二发