牛客 序列排列1

简介: 牛客 序列排列1

牛客 序列排列1


题目:


给定一个长度为 n 序列 {a},对序列 {a} 进行任意排列之后得到新的数组 {b},求满足 i∈[1,n],ai≠bi的 i 最多可能个数。


输入描述:


第一行输入一个整数 n(1≤n≤105)


第二行,n 个整数 ai(1≤ai≤105)


输出描述:


一行,表示答案。

示例1


输入


5

1 1 2 2 5


输出


5


思路:先找到序列中相同元素的最大数量,如果小于等于序列总数一半时,直接输出序列长度,否则输出2倍的其他元素个数之和

AC代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,a[101010];
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    sort(a,a+n);
    int sum=1,ans=1;
    for(int i=1;i<n;i++)
    {
        if(a[i]==a[i-1])
        ans++;
        else
        sum=max(ans,sum),ans=1;
    }
    sum=max(ans,sum);
    int num;
    num=n-sum;
    if(sum<=n/2)
    {
        cout<<n<<endl;
    }
    else
    cout<<2*num<<endl;
    return 0;
}

目录
相关文章
|
8月前
【题型总结】动态规划之按照某种形式分割数组以获得最值
【题型总结】动态规划之按照某种形式分割数组以获得最值
84 0
|
5月前
|
存储 Python
【面试题】排列序列
【面试题】排列序列
46 1
|
7月前
|
存储 算法
算法训练,牛客.判断是不是平衡二叉树 牛客.最大子矩阵两个数组的交集牛客.数组中两个字符串的最小距离
算法训练,牛客.判断是不是平衡二叉树 牛客.最大子矩阵两个数组的交集牛客.数组中两个字符串的最小距离
算法训练,牛客.判断是不是平衡二叉树 牛客.最大子矩阵两个数组的交集牛客.数组中两个字符串的最小距离
|
7月前
|
算法
【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值
【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值
|
8月前
|
算法 测试技术 API
【线段树】1622. 奇妙序列
【线段树】1622. 奇妙序列
|
8月前
|
算法
【剑指offer】-字符串的排列-26/67
【剑指offer】-字符串的排列-26/67
|
算法 索引
代码随想录算法训练营第二天 |977.有序数组平方,209.长度最小的字数组,59.螺旋矩阵
代码随想录算法训练营第二天 |977.有序数组平方,209.长度最小的字数组,59.螺旋矩阵
|
算法 安全 Swift
LeetCode - #60 排列序列
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
剑指offer 65. 翻转单词顺序
剑指offer 65. 翻转单词顺序
65 0
|
边缘计算 算法 测试技术
LeetCode 周赛 343(2023/04/30)结合「下一个排列」的贪心构造问题
今天是五一假期的第二天,打周赛的人数比前一天的双周赛多了,难道大家都只玩一天吗?这场周赛是 LeetCode 第 343 场单周赛,如果不考虑第一题摆烂的翻译,整体题目质量还是很不错哒。
101 0

热门文章

最新文章