饿了么笔试0822 第二题题解

##饿了么笔试###笔试#
#include <bits/stdc++.h>
using namespace std;
const int N = 200010;
int a[N],n,cnt[N],idx,ans;
int main() {
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i],cnt[a[i]]++,idx = max(idx,a[i]);
    for(int i=1;i<idx;i++) if(cnt[i]%2) ans++;
    ans = ans/2+ans%2,cout<<ans;
}
其实用桶计数,计算出每种数出现的个数
那么出现了偶数次的是不用操作的,然后计算除了最大值以外有几种数出现了奇数次
比如说有:3个1,5个2
那么把其中的1变成2就能同时让两个出现奇数次的数变成偶数次,最后再把剩下的那个数变成最大值就行
全部评论
😯也是这个做法但是只过了75
点赞 回复 分享
发布于 08-22 22:50 上海

相关推荐

数学白痴:没有0-1吗 看不起我吗
投递饿了么等公司10个岗位
点赞 评论 收藏
分享
小浪_Coding:这没必要搞对立 如果打算就业本科肯定是最好的, 读研更多去一些国央企,事业单位, 花3年时间读研为了进大厂其实性价比一般
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务