首页 > 试题广场 >

刷墙

[编程题]刷墙
  • 热度指数:3763 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
最近小明搬到了新家,他正在粉刷墙壁,但是不幸的是他粉刷的墙壁并不理想。他的墙壁是一个长度为 的格子,每个格子用0表示红色,用1表示蓝色。现在墙壁是一个非常混乱的颜色。他想将墙壁涂成左边全是蓝色右边全是红色,可以将墙壁刷成全是红色或者蓝色。请问他至少需要粉刷多少个格子墙壁刷成他想要的样子?

数据范围:
进阶:时间复杂度,空间复杂度

输入描述:
第一行一个整数
第二行个长度为的01串,0表示红色,1表示蓝色。


输出描述:
输出一个整数表示最少粉刷次数。
示例1

输入

3
001

输出

1

说明

只需要将最后一个刷成红色。 
头像 随心守矩
发表于 2021-08-20 11:04:52
#include<iostream> #include<algorithm> using namespace std; int main() {     int n;   &n 展开全文
头像 ffffffan
发表于 2022-04-12 12:10:13
逻辑比较好想,刷两遍 vector blue,res记录在每一格需要刷的红蓝数量 blue从左开始,看见0就说明要刷,blue[i] = blue[i]+1 red从右开始,看见1就++; 然后计算min(blue[i]+red[i], res),找出在哪一格,需要刷的墙最少 最后将res--,这是 展开全文
头像 影子咿呀
发表于 2022-02-26 10:48:17
JS代码解析: var k=readline();//消耗掉元素个数的输入(第一行) var input=readline();//这行才是有用的  var count1=0 //统计1的个数 for(var i=0;i<input.length;i++){   展开全文