0
已解决
熊潇然
初级启示者
初级启示者
题目链接: 酷町堂:2793
2793 二值排序
经验值:1200 时间限制:1000毫秒 内存限制:128MB
题目描述 Deion
现在有n个数,它们中的每一个都是1或者是2。现在希望序列中所有的1都排到2的前面。数字移动的方式是交换两个数字的位置(这两个数字可以不相邻)。请问最少要交换多少次才能达到目标?
输入描述 Input Deion
第一行,一个整数,n
一行,n个整数,每个数的值为1或2
输出描述 Output Deion
最少要交换多少次才能使所有的1都排到所有2的前面
样例输入 Sample Input
5
1 1 2 2 2
样例输出 Sample Output
0
数据范围及提示 Data Size & Hint
n≤100
求思路
求代码
0
已采纳
万睿言
初级光能
初级光能
这一道题要用到贪心算法
循环遍历1到n{
输入a数组
如果当前数a[i]等于1//记录1的个数
计数器cnt自增一次
}
循环遍历1到cnt{
如果当前数a[i]不等于//前cnt个数应该都是1,如果不是1那么就要发生改变,记录次数
ans自增一次
}
c输出ans
0
0
0
0