注册 登录
编程论坛 数据结构与算法

应该是有关时间复杂度的算法问题(魔法)

零号小白菜 发布于 2020-03-08 20:01, 4748 次点击
2  魔法
Time Limit:1000MS  Memory Limit:65535K
题型: 编程题   语言: 无限制
描述
农夫约翰的奶牛场有很多奶牛,奶牛有黑白两种颜色。现在奶牛们排成整齐的一列去参加镇上的游行活动。
约翰希望白色奶牛都排在前面,黑色的奶牛都排在后面。但现在队列中奶牛的颜色是混乱的,并且奶牛们都不愿意改变位置。
幸运的是,约翰有一根魔法棒,每挥舞一次魔法棒就可以改变一头奶牛的颜色。
请问,约翰至少要挥舞多少次魔法棒,才能将队列改成他希望的状态。注意,可以将所有的奶牛都变成白色,或者都变成黑色。

输入格式
第一行一个正整数n,表示奶牛的头数。(1<=n<=200000)。
第二行n个正整数,均为1或2,1表示白色奶牛,2表示黑色奶牛。
输出格式
一个正整数,表示挥舞魔法棒的最少次数。
输入样例
7
2 2 1 1 1 2 1
输出样例
3
提示
可以把1和2号奶牛变成1,7号奶牛变成2,或者全部奶牛变成1,最少需要3次。
2 回复
#2
林月儿2020-03-08 23:08
计数统计的问题吧
#3
matianwu2020-04-22 16:13
实质就是列表长度减去最长递增序列长度。复杂度O(n).

[此贴子已经被作者于2020-4-22 16:14编辑过]

1