当前位置: 首页 > news >正文

Leetcode 2379. 得到 K 个黑块的最少涂色次数

目录

一、题目内容和对应链接

1.题目对应链接 

2.题目内容

二、我的想法

三、其他人的题解


一、题目内容和对应链接

1.题目对应链接 

Leetcode 2379. 得到 K 个黑块的最少涂色次数

2.题目内容

给你一个长度为 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.最开始想的是,遍历 blocks ,先求出最大的连续 "B" 有多少个。如果这个数大于 k 就直接返回 0 ,否则再遍历。

之后又想干脆一次遍历,求出每块的 B 和 W 都有多少个,之后再看两个 B 中间的 W 又多少,连起来能不能满足 k 个数。

大致代码如下:

class Solution:def minimumRecolors(self, blocks: str, k: int) -> int:blockslen = len(blocks)maxcontinue = 0listblock = list()write = black = 0for i in range(0, blockslen):if i == 0:if blocks[0] == "W":write += 1flag = "W"else: black += 1flag = "B"else:if blocks[i] == "W":write += 1if black:listblock.append(black)black = 0else:black += 1 if write:listblock.append(write)maxcontinue = max(maxcontinue,black)write = 0if k <= maxcontinue:return 0if black:listblock.append(black)if write:listblock.append(write)print(flag,listblock)

但是明显不太行。

2.看了下题解的第二行字:滑动窗口,还没往下看我就一下子悟了:

我干脆设一个 i 和 j ,i 到 j 的长度为 k ,i 从 0 开始,j 的最长为 blocks 的长度。

就相当于限定 k 个块,这个块每次往后移动 1 下,判断移动过程中限定的字符串中有几个 W ,最小的 W 的个数即为所求

class Solution:def minimumRecolors(self, blocks: str, k: int) -> int:blockslen = len(blocks)minhandle = blocksleni = 0 j = i + kwhile j <= blockslen:white = blocks[i:j].count("W")minhandle = min(white, minhandle)i += 1j += 1return minhandle

三、其他人的题解

官方 : 滑动窗口

ylb : 滑动窗口

山寨功夫侠 : 前缀和

相关文章:

Leetcode 2379. 得到 K 个黑块的最少涂色次数

目录 一、题目内容和对应链接 1.题目对应链接 2.题目内容 二、我的想法 三、其他人的题解 一、题目内容和对应链接 1.题目对应链接 Leetcode 2379. 得到 K 个黑块的最少涂色次数 2.题目内容 给你一个长度为 n 下标从 0 开始的字符串 blocks &#xff0c;blocks[i] 要…...

[深入理解SSD系列 闪存实战2.1.3] 固态硬盘闪存的物理学原理_NAND Flash 的读、写、擦工作原理

2.1.3.1 Flash 的物理学原理与发明历程 经典物理学认为 物体越过势垒,有一阈值能量;粒子能量小于此能量则不能越过,大于此能 量则可以越过。例如骑自行车过小坡,先用力骑,如果坡很低,不蹬自行车也能 靠惯性过去。如果坡很高,不蹬自行车,车到一半就停住,然后退回去。 …...

总结:Linux内核相关

一、介绍看eBPF和Cilium相关内容时&#xff0c;碰到Cilium是运行在第 3/4 层&#xff0c;不明白怎么做到的&#xff0c;思考原理的时候就想到了内容&#xff0c;本文记录下内核相关知识。https://www.oschina.net/p/cilium?hmsraladdin1e1二、Linux内核主要由哪几个部分组成Li…...

flutter工程创建过程中遇到一些问题。

安装环境版本&#xff1a;JDK7.-JDK 8 Andriod SDK 10 flutter 版本 3.0 1.当创建完后flutter工程后会遇到 run gradle task assemlble Debug 的问题&#xff0c;需要设置远程仓库&#xff0c;共需要修改三个地方build.gradle两处以及flutter 下面的D:\FVM\versions\3.0.0\pac…...

记录实现操作系统互斥锁的一次思考

今天实现操作系统互斥锁的时候遇到一个有趣的问题。 场景 有两个进程分别名为 taskA&#xff0c;taskB&#xff0c;采取时间片轮转的方式交替运行——也即维护了一个 ready_queue&#xff0c;根据时钟中断来 FIFO 地调度任务。它们的任务是无限循环调用 sys_print() 来打印自…...

计算机SCI期刊的分值是什么意思? - 易智编译EaseEditing

影响因子&#xff08;Impact Factor,IF)是美国ISI&#xff08;科学信息研究所)的JCR(期刊引证报告)中的一项数据。 即某期刊前两年发表的论文在统计当年的被引用总次数除以该期刊在前两年内发表的论文总数。这是一个国际上通行的期刊评价指标。 例如&#xff0c;某期刊2005年影…...

5MW风电永磁直驱发电机-1200V直流并网MATLAB仿真模型

MATLAB2016b运行。主体模型&#xff1a;风机传动模块、PMSG模块、蓄电池模块、超级电容模块、无穷大电源。蓄电池控制、风机控制、逆变器控制。风机输出功率&#xff1a;直流母线电压&#xff1a;逆变器输出电压&#xff1a;逆变器输出电流&#xff1a;混合储能荷电状态&#x…...

10 个常见的 JavaScript 面试问题以及如何回答它们

你在准备 JavaScript 面试吗&#xff1f;别再看了&#xff01;本文将介绍10 个常见的 JavaScript 面试问题以及如何在代码示例和解释的帮助下回答这些问题。1. JavaScript 中的提升是什么&#xff1f;提升是 JavaScript 中的一种行为&#xff0c;其中变量和函数声明被移动到其作…...

字节跳动-今日头条后端开发一面面经

飞书50min 1、实习经历&#xff1f; 2、参加竞赛经历&#xff1f; 3、TCP和UDP的区别&#xff1f; 4、cookie和session的区别&#xff1f; 5、session如何做分布式&#xff1f; 6、概率题目&#xff0c;A和B轮流抛硬币&#xff0c;谁先抛到正面就获胜&#xff0c;A先抛硬币&…...

再见 ETHDenver 2023

我们来一起回顾Web3中规模最大&#xff0c;持续时间最长的以太坊史诗级建造周我们正在庆祝#YearoftheSpork&#xff0c;并借助 Web3 中最大的以太坊社区活动之一拉开了黑客马拉松赛季的序幕。ETH Denver 旨在围绕一个共同的目标聚集了志同道合的人&#xff0c;我们非常高兴今年…...

阿里云dataworks表操作

–odps sql –– –author:宋文理 –create time: –– 创建表 创建非分区表、分区表、外部表或聚簇表。 限制条件 分区表的分区层级不能超过6级。例如某张表以日期为分区列&#xff0c;分区层级为年/月/周/日/时/分。 一张表允许的分区个数支持按照具体的项目配置&#xff0c…...

【latex】总结最近使用到的画图、表格及公式操作

前言 推荐使用overleaf写latex文章&#xff0c;内含很多会议/期刊的模板&#xff0c;可以直接套用。 https://www.overleaf.com下文都是在写论文过程中比较头疼的部分&#xff0c;有人建议我写完文章&#xff0c;最后再调整格式。但图片过大看起来实在是不适~ 插入图片 \beg…...

excel表格数字乱码怎么恢复正常

excel表格数字乱码怎么恢复正常?作为可以进行数据存储、提取、计算的excel表格&#xff0c;经常会遇到excel表格数字乱码这一情况。这可能是由于输入的数字位数较多&#xff0c;数字出现乱码。出现这种情况将会大大影响我们的工作。那么我们该怎么办?这里小编将为您带来excel…...

泰山众筹电商模式的分析

泰山众筹模式是电商平台营销玩法&#xff0c;市场上高活跃度的现象也证实了众筹模式的口碑&#xff0c;结合社交电商的模型&#xff0c;会员和产品销量都会得到飞跃&#xff0c;并且这样结合以后&#xff0c;泰山众筹模式也会更长久、合理&#xff0c;以及可持续。 泰山众筹模…...

[算法]归并排序

参考&#xff1a;《漫画算法-小灰的算法之旅》 目录 参考&#xff1a;《漫画算法-小灰的算法之旅》 1、什么是归并排序 2、归并的具体操作 3、代码 4、时间复杂度和空间复杂度 5、归并排序是稳定排序 1、什么是归并排序 归并排序就像是组织一场元素之间的“比武大会”&…...

【UE4 RTS游戏】05-自定义日期和时间

效果步骤打开项目设置&#xff0c;重新设置玩家状态类为“MyGameState”打开“MyGameState”&#xff0c;点击类设置&#xff0c;选中父类为“GameStateBase”接着创建一些变量&#xff1a;&#xff08;1&#xff09;“TimeUnit”&#xff0c;浮点型&#xff0c;私有&#xff0…...

ES的restful风格的HTTP方法详解

ES的restful风格的HTTP方法详解 一、概述 ​ restful是一种设计风格&#xff0c;用于构建Web服务和API。 ​ 在restful风格中&#xff0c;HTTP请求方法&#xff08;如GET、POST、PUT、DELETE&#xff09;和URL&#xff08;统一资源定位符&#xff09;被用来定义服务端资源的…...

第十三章 opengl之模型(导入3D模型)

OpenGL模型导入3D模型优化使用3D模型模型 使用Assimp并创建实际的加载和转换代码。Model类结构如下&#xff1a; class Model {public:/* 函数 */Model(char *path){loadModel(path);}void Draw(Shader shader); private:/* 模型数据 */vector<Mesh> meshes;st…...

html标签表示!

html是什么&#xff1f;HTML全称为超文本标记语言&#xff0c;是一种标记语言。包括一系列标签&#xff0c;通过这些标签可以将网络上的文档格式统一&#xff0c;使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本&#xff0c;HTML命令可以说明文…...

前端优化,webpack打包删除无用文件,并附上批量删除文件脚本!非常好用

前言 大家可能在webpack打包项目过程中&#xff0c;常遇见一些无用的图片&#xff0c;js文件&#xff0c;怎样能够自动检测哪些是无用的文件呢&#xff1f;本文中介绍使用插件useless-files-webpack-plugin查找无用文件&#xff0c;在terminal中删除&#xff0c;附加bat批量删…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...