【Java|golang】2379. 得到 K 个黑块的最少涂色次数---滑动窗口

news2024/9/22 15:52:02

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

    public int minimumRecolors(String blocks, int k) {
        int sum=0;
        char[] chars = blocks.toCharArray();
        for (int i = 0; i < k; i++) {
            if(chars[i]=='W'){
                sum++;
            }
        }
        int res=sum;
        for (int i = 1; i <= chars.length-k; i++) {
            if(chars[i-1]=='W'&&chars[i+k-1]=='B'){
                sum--;
            }else if (chars[i-1]=='B'&&chars[i+k-1]=='W'){
                sum++;
            }
            res=Math.min(sum,res);
        }
        return res;
    }

在这里插入图片描述

func minimumRecolors(blocks string, k int) int {
	sum:=0
	for i := 0; i < k; i++ {
		if blocks[i]=='W'{
			sum++
		}
	}
	res:=sum
	for i := 1; i <= len(blocks)-k; i++ {
		if blocks[i-1]=='W'&&blocks[i+k-1]=='B'{
			sum--
		}else if blocks[i-1]=='B'&&blocks[i+k-1]=='W'{
			sum++
		}
		if sum<res {
			res=sum
		}
	}
	return res
}

在这里插入图片描述

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

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

相关文章

07 C语言数组

07 C语言数组 1、初试数组 #include<stdio.h>int main(int argc,char const *argv[]){double sum;int a[100];int i 0;int cnt 0;scanf("%d",&i);while(i ! -1){sum i;a[cnt] i;scanf("%d",&i);}if(cnt > 0){double average sum / …

深入堆空间

堆空间用来干嘛的&#xff1f;我们知道基础类型的变量、对象的引用既可以在栈也可以在堆上&#xff0c;但是对象一定是在堆空间的。堆上存储的是从GC Root可达的活跃对象。什么是GC Root&#xff1f;垃圾回收器在判断哪些对象该回收的时候&#xff0c;需要一个标准&#xff0c;…

初识项目管理

项目的特性 项目是一项 临时性 的工作&#xff0c;即所有的项目都有确定的开始和结束时间。项目的目的是创造 独特 的产品、服务或成果。项目具有 渐近明细性&#xff0c;即项目随着时间的推移&#xff0c;相关信息逐渐清晰。 项目举例 万事皆项目&#xff1a; 开发信息系统…

川农机械专业小伙转行Java开发,年薪20w

本期学员就业故事&#xff0c;知了姐邀请到一位“特别”的同学&#xff0c;一位从知了堂就业成功近两年的学员再度接受我们的采访。 来自四川农业大学的曾同学&#xff0c;一个本来学机械开挖掘机的粗犷男人&#xff0c;因为不断地努力学习编程&#xff0c;最终成为一个性格闷…

轻松掌握C++的模板与类模板,将Tamplate广泛运用于我们的编程生活

C提高编程 本阶段主要针对C泛型编程和STL技术做详细讲解&#xff0c;探讨C更深层的使用 泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。 模板 1.模板的概念 模板就是建立通用的模具&#xff0c;大大提高复用性 例如&#xff1a; 2.函数模板 C另一种编程思想称…

【二分查找】数的范围

数的范围思路二分查找左边界右边界代码实现思路 题目主要的意思在一个升序也就是有序的数组中 找到一段相同数组的起始位置和最终位置 也就是查找两个数的问题 题目给的是升序数列让人很容易想到二分查找来查找两个数 二分查找 我们此时的问题就转化为查找到这段序列的起始位…

Python中变量的作用域精讲

文章目录前言一、局部变量二、全局变量前言 变量的作用域是指程序代码能够访问该变量的区域&#xff0c;如果超出该区域&#xff0c;再访问时就会出现错误。在程序中&#xff0c;一般会根据变量的 “有效范围” 将变量分为 “全局变量” 和 “局部变量”。 一、局部变量 局部变…

Linux——进程间通信1

目录 进程间通信目的 进程间通信标准 管道 匿名管道 管道实现进程间通信 管道的特点 进程池 ProcessPool.cc Task.hpp 习题 进程间通信目的 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 资源共享&#xff1a;多个进程之间共享同样的资源。 通知事件…

前端的浮点数计算问题

加 //加 export const add (num1, num2) > {var r1, r2, m, ctry {r1 num1.toString().split(.)[1].length} catch (e) {r1 0}try {r2 num2.toString().split(.)[1].length} catch (e) {r2 0}c Math.abs(r1 - r2)m Math.pow(10, Math.max(r1, r2))if (c > 0) {va…

Vue3通透教程【七】生命周期函数

文章目录&#x1f31f; 写在前面&#x1f31f; 生命周期钩子函数&#x1f31f; 组合式API生命周期&#x1f31f; 写在最后&#x1f31f; 写在前面 专栏介绍&#xff1a; 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章&#xff0c;应粉丝要求开始更新 Vue3 的相关技术文章&am…

性能优化之前端项目性能优化的几种方案

加载优化&#xff0c;减少http请求一个完整的 HTTP 请求需要经历 DNS 查找&#xff0c;TCP 握手&#xff0c;浏览器发出 HTTP 请求&#xff0c;服务器接收请求&#xff0c;服务器处理请求并发回响应&#xff0c;浏览器接收响应等过程。Queueing: 在请求队列中的时间。Stalled: …

5.1 STM32学习 中断系统和EXTI外部中断

中断系统中断&#xff1a;在主程序运行过程中&#xff0c;出现了特定的中断触发条件&#xff08;中断源&#xff09;&#xff0c;使得CPU暂停当前正在运行的程序&#xff0c;转而去处理中断程序&#xff0c;处理完成后又返回原来被暂停的位置继续运行。中断优先级&#xff1a;当…

框架篇-面试题6-说一下Vue2与Vue3的钩子函数

Vue钩子函数是在Vue实例从创建到销毁的过程中自动执行的函数&#xff08;在特定的阶段,能够自动自执行的函数&#xff09;钩子函数用来描述一个组件从引入(创建)到退出(销毁)的全过程中的某个过程Vue2生命周期钩子函数整个过程称为生命周期Vue钩子函数按照组件生命周期的过程分…

作为一名程序员少不了的软件

写在前面的话 就现今我自己接触的项目而言&#xff0c;我发现对于一名程序员来说有些软件是真的必不可少的&#xff0c;防止下次换电脑或者要换操作系统的时候用&#xff0c;特此记录一下。 一、最常使用的&#xff0c;JetBrain全家桶&#xff08;idea、pycharm、webstorm&…

【办公类-16-06-02】“2022下学期 总园活动室(沙水+建构)排班表(两周一次沙水)”(python 排班表系列)

作品展示&#xff1a;背景需求&#xff1a;上一篇批量制作了“7天轮回14班沙水每周固定建构”的活动室内排班表。一、时段冲突&#xff0c;调整单双周。保教主任抽空检查后&#xff0c;提到&#xff1a;“一个班、上午、下午都有自主游戏&#xff08;沙水、建构、表演、角色&am…

金三银四、金九银十 面试宝典 JAVASE八股文面试题 超级无敌全的面试题汇总(接近3万字的面试题,让你的JAVA语法基础无可挑剔)

JavaSE八股文 - 面试宝典 一个合格的 计算机打工人 &#xff0c;收藏夹里必须有一份 JAVA八股文面试题 &#xff0c;特别是即将找工作的计算机人&#xff0c;希望本篇博客对你有帮助&#xff01; 本文参考了诸多大佬的面试题帖子&#xff0c;ps&#xff1a;白大锅、哪吒、英雄…

从Linux内核中学习高级C语言宏技巧

Linux内核可谓是集C语言大成者&#xff0c;从中我们可以学到非常多的技巧&#xff0c;本文来学习一下宏技巧&#xff0c;文章有点长&#xff0c;但耐心看完后C语言level直接飙升。 本文出自&#xff1a;大叔的嵌入式小站&#xff0c;一个简单的嵌入式/单片机学习、交流小站 从…

机器看世界

博主简介 博主是一名大二学生&#xff0c;主攻人工智能研究。感谢让我们在CSDN相遇&#xff0c;博主致力于在这里分享关于人工智能&#xff0c;c&#xff0c;Python&#xff0c;爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主&#xff0c;博主会继续更新的&#xff0c…

为什么红黑树如此受欢迎

平衡二叉查找树有很多&#xff0c;但是我们一提到平衡二叉查找树&#xff0c;常提及的就是红黑树&#xff0c;它的“出镜率”甚至要高于平衡二叉查找树。 红黑树是一种相对平衡的二叉查找树&#xff0c;不符合严格意义上平衡二叉查找树的定义。 目录 红黑树的插入 红黑树的验…

SAP ABAP WebService

第一步&#xff1a;SE37 创建一个远程函数&#xff08;Remote Function Module&#xff09;注意该函数需要将Remote Enable开启第二步&#xff1a;创建WebService首先&#xff1a;SE37 打开需要关联的函数在菜单 Utilities->More Utilities->Create Web Service->From…