• 10 完成一半题目


    这道题需要用t哈希表的知识,首先哈希表是哈希表 又称散列表  他和邻接表不是一个东西 但它们都用表的方式完成的。不要把他们搞混淆。

    然后我们先看一看什么是哈希表 之前网课没有听课的同学 现在要听一听了带你快速理解 哈希表(散列表)的运作原理_哔哩哔哩_bilibili

    10 完成一半题目

    作者: Turbo时间限制: 1S章节: 课程设计

    问题描述 :

    有 N 位扣友参加了微软与力扣举办的「以扣会友」线下活动。主办方提供了 2*N 道题目,整型数组 questions 中每个数字对应了每道题目所涉及的知识点类型。

    若每位扣友选择不同的一题,请返回被选的 N 道题目至少包含多少种知识点类型。

    示例 1:

    输入:

    4

    2 1 6 2

    输出:1

    解释:共有 2 位扣友,在 4 道题目中选择 2 题。

    可选择完成知识点类型为 2 的题目时,此时仅一种知识点类型,因此至少包含 1 种知识点类型。

    示例 2:

    输入:

    12

    1 5 1 3 4 5 2 5 3 3 8 6

    输出:2

    解释:共有 6 位扣友,在 12 道题目中选择题目,需要选择 6 题。

    3位选择完成知识点类型为 3 的题目,3位选择完成知识点类型为 5 的题目,因此至少包含 2 种知识点类型。

    输入说明 :

    输入两行:

    第一行为一个整数n代表数组questions的长度,n=2*N,N为扣友的数量。

    第二行输入n个整数代表数组questions的元素。

    提示:

        2 <= n <= 10^5

        1 <= questions[i] <= 1000

    输出一个整数表示结果。

    输入范例 :

    6
    1 2 3 4 5 1

    输出说明 :

    2

    1. #include<iostream>
    2. #include<algorithm>
    3. using namespace std;
    4. bool cmp(int x, int y)
    5. {
    6. return x > y;
    7. }
    8. int main()
    9. {
    10. int arr[100001] = { 0 };
    11. int haxi[100001] = { 0 };
    12. int n = 0;
    13. cin >> n;
    14. for (int i = 0; i < n; i++)
    15. {
    16. cin >> arr[i];
    17. haxi[arr[i]]++;
    18. }
    19. int people = n / 2;
    20. sort(haxi, haxi+1000,cmp);
    21. int total = 0;
    22. for (int i = 0; i < 1000; i++)
    23. {
    24. if (people > 0)
    25. {
    26. people -= haxi[i];
    27. total++;
    28. }
    29. else
    30. {
    31. break;
    32. }
    33. }
    34. cout << total << endl;
    35. return 0;
    36. }

  • 相关阅读:
    ansible之template模块
    手机强制移除ppt密码,ppt权限密码多少?
    小米手环6解决天气未同步问题
    C#:画许多圆
    井水,矿泉水等饮用水去除氟离子树脂技术
    PPIO边缘云聚焦音视频底层技术,探索元宇宙“登月工程”
    Lambda 表达式:解锁编程世界的魔法之门
    淘宝API常用接口列表与申请方式
    Spring Security(5)
    ZHOJ_#20952. 最大公约数_数论
  • 原文地址:https://blog.csdn.net/Ultravioletrays/article/details/125609325