力扣-2379. 得到 K 个黑块的最少涂色次数

文章目录

    • 力扣题目
    • 工程代码
      • C++实现
      • python实现

力扣题目

给你一个长度为 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

工程代码

C++实现

class Solution {
public:int minimumRecolors(string blocks, int k) {int minNum = INT_MAX;int ans = 0;/*先求出前K个窗口中,字符W的个数*/for(int i = 0; i < k; i++){if(blocks[i] == 'W'){ans++;}}minNum = ans;/*移动长度为K的滑动窗口*/for(int i = k; i < blocks.length(); i++){/*窗口的第一个字符为W, 窗口中的W个数减1*/if(blocks[i - k] == 'W'){ans--;}/*窗口新加入的字符为W, 窗口中的W个数加1*/if(blocks[i] == 'W'){ans++;}minNum = min(minNum, ans);}return minNum;}
};

python实现

class Solution:def minimumRecolors(self, blocks: str, k: int) -> int:# 求出前k个字符中W的个数minNum = ans = blocks[:k].count('W')# 移动长度为k的滑动窗口for i in range(k, len(blocks)):# 窗口的第一个字符为W, 窗口中的W个数减1if blocks[i - k] == 'W':ans -= 1# 窗口新加入的字符为W, 窗口中的W个数加1if blocks[i] == 'W':ans += 1minNum = min(minNum, ans)return minNum

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/854670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为手环9省电设置

1、 手环开启熄屏显示续航约3天&#xff0c;原因为屏幕持续常亮显示&#xff1b;如不需要可通过手环“设置->表盘->熄屏显示”路径进行关闭&#xff1b; 2、 手环具备后台健康自动检测功能&#xff0c;您可根据需要选择是否使用或关闭&#xff1a; &#xff08;1&#x…

实用软件分享-----一款免费的人工智能替换face的神器

专栏介绍:本专栏主要分享一些实用的软件(Po Jie版); 声明1:软件不保证时效性;只能保证在写本文时,该软件是可用的;不保证后续时间该软件能一直正常运行;不保证没有bug;如果软件不可用了,我知道后会第一时间在题目上注明(已失效)。介意者请勿订阅。 声明2:本专栏的…

DoIP——step2:车辆发现

文章目录 前言一、IP地址配置1.1 AutoIP1.2 DHCP1.3 DoIP实体的IP地址配置流程二、车辆发现车辆声明报文内容如下:前言 完成诊断设备到车辆的物理连接并通过激活线使能诊断连接后边缘节点将会将连接状态传递至应用层,在开始车辆发现过程之前,需要先进行各自的IP地址配置,获…

海外媒体发稿渠道和方法有哪些?如何选择靠谱的国外媒体发稿服务商?

在选择海外媒体发稿服务商时&#xff0c;以下是一些关键点可以帮助您找到靠谱的服务商&#xff1a; 服务商的经验和口碑&#xff1a;查找该服务商在行业内的声誉和客户评价。拥有丰富经验和良好口碑的服务商通常更可靠。 媒体资源和覆盖范围&#xff1a;了解服务商所能提供的媒…

vue中的模板语法

第1部分&#xff1a;引言 1.1 介绍Vue框架 Vue.js&#xff0c;简称Vue&#xff0c;是一个用于构建用户界面的渐进式JavaScript框架。自从2014年首次发布以来&#xff0c;Vue因其简洁、易学和高效而迅速赢得了开发者的青睐。Vue的核心库只关注视图层&#xff0c;易于与其他库或…

Python并行编程技术与方法详解:线程池、进程池及优化策略

目录 一、引言 二、线程池 线程池的概念 Python中的线程池实现 线程池的优缺点 三、进程池 进程池的概念 Python中的进程池实现 进程池的优缺点 四、优化策略 合理设置线程池和进程池的大小 任务的拆分与合并 使用队列和锁等同步机制 选择合适的并行框架 五、异…

【机器学习300问】121、RNN是如何生成文本的?

当RNN模型训练好后&#xff0c;如何让他生成一个句子&#xff1f;其实就是一个RNN前向传播的过程。通常遵循以下的步骤。 &#xff08;1&#xff09;初始化 文本生成可以什么都不给&#xff0c;让他生成一首诗。首先&#xff0c;你需要确定采样的起始点。这可以是一个特殊的开…

MySQL-DDL(Data Definition Language)

078-对表结构进行增删改操作 增删改表结构DDL&#xff08;Data Definition Language&#xff09; 创建一个学生表 create table t_student( no bigint, name varchar(255), age int comment 年龄 );查看建表语句 show create table t_student;修改表名 alter table 表名 r…

关于scrapy模块中间件的简单理解

摘要 Scrapy爬虫模块是爬虫程序员使用最多的一个模块&#xff0c;它以快速&#xff0c;高层次等优势&#xff0c;深受爬虫工作者的喜爱&#xff0c;其中Scrapy的中间件功能也极其重要。中间件处于引擎和爬虫之间的钩子框架&#xff0c;允许开发者自定义处理请求和响应的过程。…

富格林:需知k线阻挠交易欺诈

富格林指出&#xff0c;尽管现货黄金的投资机会十分充足&#xff0c;但也并不代表能够轻松获得盈利。尤其是近段时间行情较多&#xff0c;做单的难度无疑也会有所提升&#xff0c;所以要想阻挠交易欺诈在黄金市场当中盈利&#xff0c;就得学会分析现货黄金K线图。下面富格林将总…

Linux网络 - HTTP协议

文章目录 前言一、HTTP协议1.urlurl特殊字符 requestrespond 总结 前言 上一章内容我们讲了在应用层制定了我们自己自定义的协议、序列化和反序列化。 协议的制定相对来讲还是比较麻烦的&#xff0c;不过既然应用层的协议制定是必要的&#xff0c;那么肯定已经有许多计算机大佬…

C++使用spdlog输出日志文件

参考博客&#xff1a; 日志记录库 spdlog 基础使用_spdlog 写日志-CSDN博客 GitHub - gabime/spdlog: Fast C logging library. 首先在github上下载spdlog源码&#xff0c;不想编译成库的话&#xff0c;可以直接使用源码&#xff0c;将include文件夹下的spdlog文件夹&#x…

网络:用2个IP地址描述一个连接

用2个IP地址描述一个连接。这是在阅读了《TCP/IP指南》后的感想&#xff0c;与工业标准不同&#xff0c;需注意区分。 如果一个IP地址有48位&#xff0c;则用96位描述一个连接 对于单播&#xff0c;是每个IP分别描述位置。位置包括&#xff1a;邮局编号主机编号&#xff0c;采用…

Qt 信号与槽机制概述

在 Qt 中&#xff0c;emit 是一个用于发射信号的关键字。它是 Qt 的信号与槽&#xff08;Signals and Slots&#xff09;机制的一部分&#xff0c;用于在某个条件满足时通知其他对象。发射信号是一种实现对象之间通信的方式&#xff0c;特别是在事件驱动编程模型中。 Qt 信号与…

示例:WPF中TreeView自定义TreeNode泛型绑定对象

一、目的&#xff1a;在开发中经常需要绑定TreeView&#xff0c;所以定义了一个泛型的TreeNode<T>用来方便绑定对象和复用 二、实现 public partial class TreeNodeBase<T> : SelectBindable<T>, ITreeNode{public TreeNodeBase(T t) : base(t){}private Obs…

MySQL常见的命令

MySQL常见的命令 查看数据库&#xff08;注意添加分号&#xff09; show databases;进入到某个库 use 库; 例如&#xff1a;进入test use test;显示表格 show tables;直接展示某个库里面的表 show tables from 库&#xff1b; 例如&#xff1a;展示mysql中的表格 show tabl…

前端三大件速成 05 javascript(2)字符串对象、数组对象、函数对象、BOM对象、DOM对象

文章目录 一、字符串对象1、创建字符串对象的两种方式2、字符串属性3、字符串的方法&#xff08;1&#xff09;编排方法&#xff08;2&#xff09;查询字符串索引&#xff08;3&#xff09;字符串切片&#xff08;4&#xff09;大小写转换&#xff08;5&#xff09;获取指定字符…

Python网络数据抓取(9):XPath

引言 XPath 是一种用于从 XML 文档中选取特定节点的查询语言。如果你对 XML 文档不太熟悉&#xff0c;XPath 可以帮你完成网页抓取的所有工作。 实战 XML&#xff0c;即扩展标记语言&#xff0c;它与 HTML&#xff0c;也就是我们熟知的超文本标记语言&#xff0c;有相似之处&am…

python脚本之解析命令参数

import requests import argparseprint(f"{__name__}:start")parser argparse.ArgumentParser(description使用方法) parser.add_argument(-p, --prefix, typestr, help域名) parser.add_argument(-t, --token, typestr, helptoken) parser.add_argument(-i, --queu…

pyqt 鼠绘椭圆 椭圆标注

目录 pyqt 椭圆标注 四个方向可以调整,调整时,另一端固定,只调整当前端,椭圆参数保存加载json pyqt 画椭圆中心点固定,调整是,两端一起调整。 pyqt 椭圆标注 四个方向可以调整,调整时,另一端固定,只调整当前端,椭圆参数保存加载json import sys import json from …