LeetCode 1122. 数组的相对排序
排序arr1:首先对arr1进行排序。这一步可以确保所有元素按照升序排列,为后续处理提供有序的环境。 提取arr2中的元素:遍历arr2中的每一个元素,逐个在排序后的arr1中查找,并将这些元素提取出来。提取时,可以将对应的元素标记为已处理,以避免重复使用。 处理未提取的元素:在提取完arr2中的所有元素后,剩下的未被处理的元素(即未在arr2中出现的元素)需要按照升序排列,依次添加到结果的末尾。 排序arr1:使用 提取arr2中的元素:通过遍历arr2中的每个元素,逐个在排序后的arr1中查找并提取,确保提取的元素与arr2中的顺序一致。 处理剩余元素:在提取完arr2中的所有元素后,剩下的元素(未在arr2中出现的元素)按照升序排列,依次添加到结果中。
发布日期:2025-06-19 11:45:24
浏览次数:4
分类:精选文章
本文共 1192 字,大约阅读时间需要 3 分钟。
题目给出了两个数组arr1和arr2,要求对arr1进行排序,使其元素的相对顺序与arr2中的元素相对顺序一致。未在arr2中出现过的元素需要按照升序放在arr1的末尾。
解题思路
代码实现
#include#include using namespace std;vector relativeSortArray(vector & arr1, vector & arr2) { // 对arr1进行排序 sort(arr1.begin(), arr1.end()); vector res; int cnt = 0; // 遍历arr2中的每一个元素 for (int i = 0; i < arr2.size(); ++i) { // 在arr1中找到对应的元素 for (int j = 0; j < arr1.size(); ++j) { if (arr1[j] == arr2[i]) { res.push_back(arr1[j]); arr1[j] = -1; // 标记已处理 break; } } } // 处理未在arr2中出现的元素 for (int i = 0; i < arr1.size(); ++i) { if (arr1[i] != -1) { res.push_back(arr1[i]); } } return res;}
示例
输入: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]
代码解释
sort函数对arr1进行升序排序。该方法确保了arr1的元素相对顺序与arr2中的顺序一致,同时也处理了未在arr2中出现的元素。
发表评论
最新留言
很好
[***.229.124.182]2026年06月08日 05时10分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
php输出数据到csv文件
2023-03-02
php输出语句
2023-03-02
php运行原理详细说明
2023-03-02
php运行环境出现Undefined index 或variable时解决方法
2023-03-02
php进程通信
2023-03-02
R&Python Data Science 系列:数据处理(2)
2023-03-02
php递归算法总结
2023-03-02
PHP递归遍历文件夹
2023-03-02
R&Python Data Science 系列:数据处理(1)
2023-03-02
php错误日志文件
2023-03-02
php隐藏手机号中间4位方法总结
2023-03-02
php面向对象三大特征封装、多态、继承
2023-03-02
php面向对象全攻略
2023-03-02
php面向对象的基础题
2023-03-02
php面试题二--解决网站大流量高并发方案(从url到硬盘来解决高并发方案总结)...
2023-03-02
php页面增加自选项,php-在Woocommerce中添加新的自定义默认订购目录选项
2023-03-02
php页面静态化技术;学习笔记
2023-03-02
php项目心得以及总结
2023-03-02
R&Python Data Science 系列:数据处理(4)长宽格式数据转换
2023-03-02