map<数据类型,数据类型> mp和unordered_map<数据类型,数据类型> ump的讲解,蓝桥杯OJ4567最大数目

一、共同点:

二、区别:

1.实现的逻辑【这个看看就行】:

2.算法比赛时候的选用:

三、例题:

题目

可执行代码:【①遍历map数组来找最大值②每次循环都提取出来最大值,循环结束后直接输出】


一、共同点:

map<数据类型,数据类型> mp和unordered_map<数据类型,数据类型> ump的定义方式和用法完全相同数组都是:mp[key]=count;ump[key]=count;

//key指数组下标,count指该下标对应的值。相当于int a[i]=7。key对应i,count对应7.

二、区别:

map<数据类型,数据类型> mp和unordered_map<数据类型,数据类型> ump的区别是:

1.实现的逻辑【这个看看就行】:

  • map:红黑树 → 有序,慢
  • unordered_map:哈希表 → 无序,快

2.算法比赛时候的选用:

  • 只需要统计次数、存映射、查有没有 → 用 unordered_map,更快不超时

  • 需要按 key 从小到大遍历、自动排序 → 只能用 map

  • 当n超过1e5的数据长度时只能用unordered_map

三、例题:

https://www.lanqiao.cn/problems/4567/learning/?page=1&first_category_id=1&name=%E6%9C%80%E5%A4%A7%E6%95%B0%E7%9B%AE&sort=problem_id&asc=1https://www.lanqiao.cn/problems/4567/learning/?page=1&first_category_id=1&name=%E6%9C%80%E5%A4%A7%E6%95%B0%E7%9B%AE&sort=problem_id&asc=1

题目:

可执行代码:【①遍历map数组来找最大值②每次循环都提取出来最大值,循环结束后直接输出】

cpp 复制代码
//①遍历map数组来找最大值
#include <bits/stdc++.h>
using namespace std;
long long n,m;
const int N=1e5+10;
long long a[N];
unordered_map<long long,long long> mp;
int main()
{
  cin>>n;
  for(int i=1;i<=n;i++) cin>>a[i];
  sort(a+1,a+1+n);
  for(int i=1;i<=n;i++){
    mp[a[i]+1]++;
    mp[a[i]]++;
    mp[a[i]-1]++;
  }
  for(auto it=mp.begin();it!=mp.end();it++){
     if(it->second>m) m=it->second;
  }
  cout<<m;
  return 0;
}



//②每次循环都提取出来最大值,循环结束后直接输出
#include <bits/stdc++.h>
using namespace std;
long long n,m;
const int N=1e5+10;
long long a[N];
unordered_map<long long,long long> mp;
int main()
{
  cin>>n;
  for(int i=1;i<=n;i++) cin>>a[i];
  sort(a+1,a+1+n);
  for(int i=1;i<=n;i++){
    mp[a[i]+1]++;
    mp[a[i]]++;
    mp[a[i]-1]++;
    m=max(m,mp[a[i]+1]);
    m=max(m,mp[a[i]]);
    m=max(m,mp[a[i]-1]);
  }
  cout<<m;
  return 0;
}
相关推荐
Java成神之路-1 小时前
【LeetCode 刷题笔记】367.有效的完全平方数 | 二分查找经典刷题题解
算法·leetcode
AI进化营-智能译站5 小时前
ROS2 C++开发系列17-多线程驱动多传感器|chrono高精度计时实现机器人同步控制
java·c++·ai·机器人
一切皆是因缘际会8 小时前
从概率拟合到内生心智:2026 下一代 AI 架构演进与落地实践
人工智能·深度学习·算法·架构
墨染千千秋8 小时前
C++函数的使用以及主函数
c++
Java成神之路-8 小时前
【LeetCode 刷题笔记】34. 在排序数组中查找元素的第一个和最后一个位置 | 二分查找经典刷题题解
算法·leetcode
不忘不弃8 小时前
用BFS方法求解平分汽油问题
算法·宽度优先
AI科技星8 小时前
全域数学·72分册·射影原本 无穷维射影几何卷细化子目录【乖乖数学】
人工智能·线性代数·算法·机器学习·数学建模·数据挖掘·量子计算
风落无尘8 小时前
《智能重生:从垃圾堆到AI工程师》——第四章 变化的艺术
人工智能·线性代数·算法
JAVA面经实录9179 小时前
计算机基础(完整版·超详细可背诵)
java·linux·数据结构·算法
特种加菲猫9 小时前
继承,一场跨越时空的对话
开发语言·c++