当前位置: 首页 > news >正文

力扣刷题--LCR 075. 数组的相对排序【简单】

在这里插入图片描述

题目描述

给定两个数组,arr1 和 arr2,

arr2 中的元素各不相同
arr2 中的每个元素都出现在 arr1 中
对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。

示例:

输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]
输出:[2,2,2,1,4,3,3,9,6,7,19]

提示:

1 <= arr1.length, arr2.length <= 1000
0 <= arr1[i], arr2[i] <= 1000
arr2 中的元素 arr2[i] 各不相同
arr2 中的每个元素 arr2[i] 都出现在 arr1 中


算法分析

标签:哈希表 , 排序
1.先用哈希表存储每种数字出现的次数
2.然后根据arr2的次序,按次数插入到结果数组ans当中
3.接下来处理arr2未在arr1中出现的元素,只需要通过查找找到那些没有出现的元素,再把它们升序排序
4.最后吧arr2在arr1中初心的元素于未在arr1中出现的元素连接起来即可

完整代码

class Solution {
public:vector<int> relativeSortArray(vector<int>& arr1, vector<int>& arr2) {unordered_map<int,int>m;for(auto i:arr1)m[i]++;//通过哈希表存储每种数字出现的次数vector<int>ans;vector<int>v;for(auto i:arr2){for(int j=1;j<=m[i];j++)//插入几次{ans.push_back(i);}}for(auto i:arr1){   //对于arr1中的每个元素在arr2中能找到嘛if(find(arr2.begin(),arr2.end(),i)==arr2.end())//没有找到就加入{v.push_back(i);}}sort(v.begin(),v.end());for(auto x:v){ans.push_back(x);}return ans;}
};

在这里插入图片描述

http://www.lryc.cn/news/355035.html

相关文章:

  • 机器学习笔记——K近邻算法、手写数字识别
  • 基于STM32实现智能园艺系统
  • 网络原理-HTTP协议
  • 【ES001】elasticsearch实战经验总结(最近更新中)
  • OpenBayes 一周速览|TripoSR 开源:1 秒即 2D 变 3D、经典 GTZAN 音乐数据集上线
  • 【论文笔记】advPattern
  • 【鱼眼镜头11】Kannala-Brandt模型和Scaramuzza多项式模型区别,哪个更好?
  • 微信小程序仿胖东来轮播和背景效果(有效果图)
  • 10.SpringBoot 统一处理功能
  • 【八股系列】为什么会有webpack配置?webpack的构建流程是什么?
  • sdf 测试-2-openssl
  • 头歌springboot初体验
  • 矩阵对角化在机器学习中的奥秘与应用
  • 操作MySQL数据库
  • Linux shell 文件生成文件脚本(模拟生成文件、生成大量文件)
  • theharvester一键收集域名信息(KALI工具系列十)
  • 「动态规划」删除并获得点数
  • MongoDB CRUD操作:内嵌文档数组查询
  • 【C++】每日一题 50 Pow(x,n)
  • HG/T 6088-2022 透水道路用涂料检测
  • linux定时清理docker日志脚本
  • ROS学习笔记(16):夹缝循迹
  • 【MySQL精通之路】SQL语句(3)-锁和事务语句
  • 211大学计算机专业不考408,新增的交叉专业却考408!南京农业大学计算机考研考情分析!
  • 利用java8 的 CompletableFuture 优化 Flink 程序,性能提升 50%
  • 香橙派 AIpro综合体验及AI样例运行
  • 通过域名接口申请免费的ssl多域名证书
  • 【JAVA WEB实用与优化技巧】如何自己封装一个自定义UI的Swagger组件,包含Swagger如何处理JWT无状态鉴权自动TOKEN获取
  • 理解大语言模型(二)——从零开始实现GPT-2
  • SSH远程登录时常见问题解决