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

【影像组学入门百问】1#---#3 理论上讲三大主流平台Windows, Linux和MacOS均可进行影像组学研究。根据笔者实际经验,如果内存不足可能导致软件罢工,其余显示、GPU等均非必要。显示:最小分辨率为1024×768(推荐为1280×1024或更好)。Slicer中的许多计算都是多线程的,并且将受益于多核,多CPU配置。计算机需要足够的内存和图形功能将原始数据和处理结果保存在其内存中。如涉及深度学习等方法的研究需根据实际需求配置电脑,无法一概而论。接口设备:推荐使用带滚轮的三键鼠标。内存:超过4GB(推荐8G以上)。 阅读详情

Every day a Leetcode

题目来源:2379. 得到 K 个黑块的最少涂色次数

解法1:滑动窗口

首先题目给出一个下标从 0 开始长度为 n 的字符串 blocks,其中 blocks[i] 是 ‘W’ 或者 ‘B’ ,分别表示白色块要么是黑色块。

现在我们可以执行任意次将一个白色块转变为黑色块的操作,并给出一个整数 k,我们需要返回至少出现一次连续 k 个黑色块的最少操作次数。

我们可以用「滑动窗口」来解决该问题。

我们用一个固定大小为 k 的「滑动窗口」表示出现连续 k 个黑色块的区间,我们需要将该区间全部变为黑色块,此时我们需要的操作次数为该区间中白色块的数目,那么我们只需要在「滑动窗口」从左向右移动的过程中维护窗口中白色块的数目,最后返回移动过程中白色块数目的最小值即为我们需要至少出现一次连续 k 个黑色块的最少操作次数。

代码:

/*
 * @lc app=leetcode.cn id=2379 lang=cpp
 *
 * [2379] 得到 K 个黑块的最少涂色次数
 */

// @lc code=start
class Solution
{
public:
    int minimumRecolors(string blocks, int k)
    {
        int n = blocks.size();
        int left = 0, right = 0;
        int countWhiteBlock = 0;
        while (right < k)
        {
            countWhiteBlock += blocks[right] == 'W' ? 1 : 0;
            right++;
        }
        int ans = countWhiteBlock;
        while (right < n)
        {
            countWhiteBlock += blocks[right] == 'W' ? 1 : 0;
            countWhiteBlock -= blocks[left] == 'W' ? 1 : 0;
            ans = min(ans, countWhiteBlock);
            left++;
            right++;
        }
        return ans;
    }
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中 n 为字符串 blocks 的长度。

空间复杂度:O(1),仅使用常量空间。

AWR2243的等效相位中心与虚拟通道 在俯仰维方向上,不重合的虚拟通道有8个,排序为1:4,9:12。每个虚拟阵元之间的间隔为lambda/2。实际y轴方向虚拟阵列只跨越了8*lambda/2的距离。等效相位中心与虚拟通道类似,只是每个相位中心之间间隔为lambda/4,实际y轴方向等效相位中心只跨越了8*lambda/4=7.59mm的距离 阅读详情

相关推荐

【HDLBits实战】从真值表到最优电路:SOP与POS形式在ECE241考题中的精妙应用

本文以HDLBits平台上的ECE241考题为例,详细讲解了如何从真值表出发,利用卡诺图化简技术,推导出最优的积之和(SOP)与和之积(POS)逻辑表达式。文章重点剖析了如何处理“无关项”以简化电路,并通过Verilog代码实现对比,阐述了SOP与POS形式在数字电路设计中的精妙应用与实战价值。

z2a3b4c5d的博客 217

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

本文探讨了如何通过最少涂色次数获得连续K个黑块的问题。解法采用滑动窗口技术,核心思想是统计窗口内白色块数量,取最小值作为答案。代码遍历字符串,动态维护窗口内白色块计数,通过窗口滑动更新最小值。时间复杂度O(n),空间复杂度O(1)。该方法高效解决了定长区间统计问题,如示例所示,能正确计算最少涂色次数。

大家好,我是千楼,全栈开发工程师,分享日常学习和工作,记录成长~~~ 795

DeepSeek的训练与优化流程

DeepSeek的训练体系不仅追求极致的计算效率,更注重将物理规律、人类知识、安全伦理深度融入训练过程,其"效率-安全-可解释性"三角平衡的设计理念,为行业提供了重要参考范式。

m0_56896669的博客 1438

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

滑动窗口算法是解决连续子数组 / 子字符串问题的高效方法。通过动态维护窗口的左右边界,避免了重复计算,时间复杂度降低到 O (n)。在本题中,我们利用滑动窗口快速找到最优解,显著提升了算法效率。掌握这一技巧对于应对面试和实际开发中的类似问题非常关键。如果您有任何疑问或建议,欢迎在评论区交流!🚀。

qq_64604732的博客 1154

PID调参避坑指南:为什么你的电机总是震荡?从比例带积分到微分实战解析

本文针对电机控制中常见的震荡问题,提供了一份PID调参实战指南。文章深入解析了比例(P)、积分(I)、微分(D)三个参数对系统稳定性的影响,揭示了比例增益过大是导致震荡的关键原因之一,并给出了从纯比例调试到引入积分、微分的系统化调参流程与避坑要点,帮助工程师快速实现电机平稳、精准的控制。

weixin_28223453的博客 460

【Jenkins】Jenkins :首次登录直接使用 admin 账户

目录 一、使用admin账户 二、修改admin用户密码 三、管理视图 一、使用admin账户 安装时,自定义安装,选择必要的插件安装,设置Jenkins的URL为: http://本机或服务器IP:8080 然后在创建第一个管理者界面,直接选择:使用admin 二、修改admin用户密码 进入:系统管理——管理用户——选中用户——点击设置图标——修改密码: 三、...

顾三殇 —— 博客空间(软件测试) 1万+

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

【代码】力扣2379.得到k个黑块的最少涂色次数。

Pisasama的博客 618

YOLOv11涨点改进 | Conv篇/小目标改进 | YOLOv11引入SPDConv卷积特征无损下采样模块,增加YOLOv11小目标P2检测层(助力小目标任务高效涨点)

本文提出了一种创新的SPDConv模块来优化YOLOv11模型,通过空间到深度(SPD)层和非步幅卷积层实现特征无损下采样。该方法有效解决了传统CNN中因跨步卷积和池化层导致的细粒度信息丢失问题,特别提升了小目标检测性能。实验表明,SPDConv在目标检测和图像分类任务中显著优于现有SOTA模型。文章详细介绍了模块原理、核心代码实现,并提供了YOLOv11集成SPDConv的具体方法,包括配置文件修改和P2层增强等优化技巧。该技术为计算机视觉任务提供了一种高效的特征保留方案。

Ai缝合怪、助力小伙伴高效发论文 588

leetcode2379:得到K个黑块的最少涂色次数(定长滑动窗口)

本文介绍了LeetCode 2379题的解法,通过思维转换将涂色问题转为统计问题:寻找长度为k的子串中最少白色块数量。采用定长滑动窗口技术,在O(n)时间内解决问题。核心思路是初始化窗口统计初始白色块数,滑动时更新计数并维护最小值。该方法高效且易于实现,时间复杂度和空间复杂度均为O(n)。

lyh2004_08的博客 834

如何使用 Claude Code 搜索 SAP note

当然,Claude Code 自己仍然要有一种合法可用的模型访问方式,例如 Claude 订阅、Anthropic API 或公司配置的模型提供方式,这和 Browser Extension 是两个问题。因为 Claude Code 已经是完整的 MCP Host,而 Microsoft Playwright MCP 又已经明确支持现有 Chrome Session,两者拼起来在技术架构上完全成立。Microsoft Playwright MCP 默认可以创建持久化浏览器 Profile。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 67

手把手教你学PCIE(9.3)--pcie常见故障及原因:配置错误介绍

PCIe 设备的配置错误可能涉及操作系统设置、BIOS 设置、驱动程序设置和配置文件设置等多个方面。通过以上方法,可以有效地诊断和解决 PCIe 设备的配置错误。

MHD0815的博客 2441

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

滑动窗口是一个在序列上移动的区间,通常由左右两个指针来界定这个区间的范围。通过移动指针来改变窗口的大小和位置,在窗口移动的过程中,根据问题的需求进行特定的计算和处理。一种得到 7 个连续黑色块的方法是把第 0 ,3 和 4 个块涂成黑色。输入:blocks = "WBBWWBBWBW", k = 7。可以证明无法用少于 3 次操作得到 7 个连续的黑块。得到 blocks = "BBBBBBBWBW"。不需要任何操作,因为已经有 2 个连续的黑块。每一次操作中,你可以选择一个白色块将它。

LS_Ai的博客 1254

ESP32S3接入讯飞在线语音识别教程及配套源代码

本文介绍了如何使用ESP32-S3开发板实现讯飞在线语音识别功能。首先,需要准备硬件设备,包括ESP32-S3开发板、麦克风模块、MicroSD卡模块和扬声器模块。接着,安装Arduino IDE并配置ESP32-S3开发环境,注册讯飞开放平台账号并获取API凭证。然后,通过I2S接口连接麦克风模块,并编写代码实现语音录制、Base64编码、API请求和识别结果处理。代码包括初始化WiFi、麦克风、系统时间,以及录制语音、发送请求、解析响应等功能。最后,通过按键触发录音,并将识别结果输出到串口。

2401_88800025的博客 749

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

我们需要在字符串blocks中,通过将某些'W'(白色块)涂成'B'(黑色块),使得出现至少一次连续k个'B'。目标是找到。

Lucy_wzw的博客 332

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

力扣每日一题2379. 得到 K 个黑块的最少涂色次数

简单滑动窗口,可以直接设置长度为k的窗口进行华东统计,找到最优值

qq_59423136的博客 537

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

滑动窗口

感觉画质不如...原神的博客 465

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【每日一题】LeetCode 2379.得到K个黑块的最少涂色次数(字符串、滑动窗口)

在解决涉及连续子串或子数组问题时,滑动窗口技术是一种非常有效的算法策略。这种技术的核心思想是维护一个动态的窗口,通过不断调整窗口的边界来遍历整个数据集合,从而找到满足特定条件的子串或子数组。本文将用滑动窗口解决字符串的经典题目

Hanbuhuic的博客 676

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

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

li_yizhixiaowukong的博客 659

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

给你一个长度为 n 下标从 0 开始的字符串 blocks ,blocks[i] 要么是 ‘W’ 要么是 ‘B’ ,表示第 i 块的颜色。一种得到 7 个连续黑色块的方法是把第 0 ,3 和 4 个块涂成黑色。请你返回至少出现 一次 连续 k 个黑色块的 最少 操作次数。输入:blocks = “WBBWWBBWBW”, k = 7。输入:blocks = “WBWBBBW”, k = 2。blocks[i] 要么是 ‘W’ ,要么是 ‘B’。给你一个整数 k ,表示想要 连续 黑色块的数目。

ls3614140的博客 492

[leetcode]2379. 得到 K 个黑块的最少涂色次数

[leetcode]2379. 得到 K 个黑块的最少涂色次数

假装路过的路人甲的博客 222

【LeetCode每日一题】——2379.得到 K 个黑块的最少涂色次数

给你一个长度为 n 下标从 0 开始的字符串 blocks ,blocks[i] 要么是 'W' 要么是 'B' ,表示第 i 块的颜色。字符 'W' 和 'B' 分别表示白色和黑色。 给你一个整数 k ,表示想要 连续 黑色块的数目。 每一次操作中,你可以选择一个白色块将它 涂成 黑色块。 请你返回至少出现 一次 连续 k 个黑色块的 最少 操作次数。

IronmanJay 521

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

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

FuckerGod的博客 616

LeetCode-2379. 得到 K 个黑块的最少涂色次数【字符串,滑动窗口】

给你一个长度为 n 下标从 0 开始的字符串 blocks ,blocks[i] 要么是 ‘W’ 要么是 ‘B’ ,表示第 i 块的颜色。一种得到 7 个连续黑色块的方法是把第 0 ,3 和 4 个块涂成黑色。请你返回至少出现 一次 连续 k 个黑色块的 最少 操作次数。输入:blocks = “WBBWWBBWBW”, k = 7。输入:blocks = “WBWBBBW”, k = 2。blocks[i] 要么是 ‘W’ ,要么是 ‘B’。给你一个整数 k ,表示想要 连续 黑色块的数目。

zik的博客 620

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

力扣LeetCode每日一题 2023.3.9

Sylvia_hit的博客 250

​力扣解法汇总2379. 得到 K 个黑块的最少涂色次数

​力扣解法汇总2379. 得到 K 个黑块的最少涂色次数

分享+记录 376
上一篇: Leetcode2383. 赢得比赛需要的最少训练时长
下一篇: 如何写好科研论文 | 作业
UestcXiye
博客等级 码龄8年 9032粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值