C练题笔记之:Leetcode-第 85 场双周赛---6156. 得到 K 个黑块的最少涂色次数
题目:
给你一个长度为 n
下标从 0 开始的字符串 blocks
,blocks[i]
要么是 'W'
要么是 'B'
,表示第 i
块的颜色。字符 'W'
和 'B'
分别表示白色和黑色。
给你一个整数 k
,表示想要 连续 黑色块的数目。
每一次操作中,你可以选择一个白色块将它 涂成 黑色块。
请你返回至少出现 一次 连续 k
个黑色块的 最少 操作次数。
示例 1:
输入:blocks = "WBBWWBBWBW", k = 7 输出:3 解释: 一种得到 7 个连续黑色块的方法是把第 0 ,3 和 4 个块涂成黑色。 得到 blocks = "BBBBBBBWBW" 。 可以证明无法用少于 3 次操作得到 7 个连续的黑块。 所以我们返回 3 。
示例 2:
输入:blocks = "WBWBBBW", k = 2 输出:0 解释: 不需要任何操作,因为已经有 2 个连续的黑块。 所以我们返回 0 。
提示:
n == blocks.length
1 <= n <= 100
blocks[i]
要么是'W'
,要么是'B'
。1 <= k <= n
结果:
解题思路:
我的算法真的复杂多了。。。虽然当时做出来了,但是。。。回头看看笨的可以。
先说说看了大佬们的写法优化后的思路:
1、由题可以知道我们计算的窗口大小为k
2、需要涂黑的模块就是k 中 白色的个数
因此,就可以滑动窗口计算其中白色的个数,将最少的返回就可以了
然后来说说我的思路:
emmm。。。不说了吧。。我感觉我也不知道自己是怎么想的了。总之是复杂化了。
代码:
这里就只记录学来的代码啦!!!
int minimumRecolors(char * blocks, int k){int len = strlen(blocks);int min = k;for (int i = 0; i + k <= len; i++) {int count = 0;for (int j = 0; j < k; j++) {if (blocks[i + j] =='W') {count++;}}min = count < min ? count : min;}return min;
}
C练题笔记之:Leetcode-第 85 场双周赛---6156. 得到 K 个黑块的最少涂色次数相关推荐
- LeetCode#2379. 得到 K 个黑块的最少涂色次数
给你一个长度为 n 下标从 0 开始的字符串 blocks ,blocks[i] 要么是 'W' 要么是 'B' ,表示第 i 块的颜色.字符 'W' 和 'B' 分别表示白色和黑色. 给你一个整数 ...
- C练题笔记之:Leetcode-第 85 场双周赛---6158. 字母移位 II
题目: 给你一个小写英文字母组成的字符串 s 和一个二维整数数组 shifts ,其中 shifts[i] = [starti, endi, directioni] .对于每个 i ,将 s 中从下标 ...
- C练题笔记之:Leetcode-第 85 场双周赛---6157. 二进制字符串重新安排顺序需要的时间
emm...第一次参加比赛..着实看到了差距之大 题目: 给你一个二进制字符串 s .在一秒之中,所有 子字符串 "01" 同时 被替换成 "10" .这个过程 ...
- 以赛促练-力扣第85场双周赛以及第307场周赛
文章目录 第85场双周赛 T3.字母移位II T4.删除操作后的最大子段和 第307场周赛 T2.最大回文数字 T3.感染二叉树需要的总时间 T4.找出数组的第K大和 第85场双周赛 T1直接暴力枚举 ...
- LeetCode第45场双周赛-解题报告
LeetCode第45场双周赛-解题报告 A. 唯一元素的和 原题链接 https://leetcode-cn.com/problems/sum-of-unique-elements/ 解题思路 因为 ...
- Leetcode 第 69 场双周赛记录
Leetcode 第 69 场双周赛记录 1.第一题 5960. 将标题首字母大写 难度:easy 给你一个字符串 title ,它由单个空格连接一个或多个单词组成,每个单词都只包含英文字母.请你按以 ...
- LeetCode 第 30 场双周赛(477/2545,前18.7%,第2次全部通过)
文章目录 1. 比赛结果 2. 题目 1. LeetCode 5177. 转变日期格式 easy 2. LeetCode 5445. 子数组和排序后的区间和 medium 3. LeetCode 54 ...
- LeetCode 第 31 场双周赛(273/2767,前9.87%,第3次全部通过)
文章目录 1. 比赛结果 2. 题目 1. LeetCode 5456. 在区间范围内统计奇数数目 easy 2. LeetCode 5457. 和为奇数的子数组数目 medium 3. LeetCo ...
- Java实现 LeetCode第30场双周赛 (题号5177,5445,5446,5447)
这套题不算难,但是因为是昨天晚上太晚了,好久没有大晚上写过代码了,有点不适应,今天上午一看还是挺简单的 5177. 转变日期格式 给你一个字符串 date ,它的格式为 Day Month Year ...
最新文章
- 2030全球新出行产业报告:2.2万亿美元蛋糕将这样分
- MySql 隐式转换
- RabbitMQ(五):Exchange交换器--topic
- 面试基础算法、及编程 第一弹
- Shell教程----Shell脚本
- 3.2 Tensorflow基础运算
- 2022年考研计算机组成原理_6 总线
- 1.3 正则表达式和Python语言-1.3.5使用 search()在一个字符串中查找模式(搜索与匹配 的对比)...
- 计算机广告制作专业,计算机广告制作专业介绍
- 司机秘书:让司机省心的违章查询助手
- Recovery文件路径
- 实现内网穿透的两种方式
- 服务器装机选哪个系统好,服务器该装08系统好还是03系统好?
- 使用基于ggplot2的包ggalluvial绘制桑基图(冲积图)
- 水星路由器短信认证配置流程
- 2W字!梳理50道经典计算机网络面试题(收藏版)
- cesium中实现鼠标拖动实体功能
- 京东开源asyncTool之线程编排
- 浙江大学 工程伦理 第四章 工程规范与责任
- 构建私有云时,需要考虑哪些问题?