博客
关于我
LeetCode 1122 数组的相对排序-简单-unordered_map容器的应用
阅读量:478 次
发布时间:2019-03-06

本文共 2250 字,大约阅读时间需要 7 分钟。

    
Relative Sort Arrays

Relative Sort Arrays Problem

Given two arrays, arr1 and arr2, where each element in arr2 is unique and appears in arr1, we need to sort arr1 such that the relative order of elements matches arr2. Elements not present in arr2 should be placed at the end in ascending order.

Example:

Input: arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]

Output: [2,2,2,1,4,3,3,9,6,7,19]

Approach

To solve this problem, we can follow these steps:

  • Mapping Elements: First, create a mapping of each element in arr2 to its position. This helps in determining the required order of elements in arr1.
  • Sorting arr1: Sort the elements in arr1 based on their positions in arr2. Elements not present in arr2 are placed at the end in ascending order.

Implementation Steps

In code, we can implement this using a hash table (unordered_map) to store the positions of elements in arr2. Then, sort arr1 using a custom comparator that checks the positions from arr2. Finally, append any elements from arr1 that are not in arr2, sorted in ascending order.

Code Example

class Solution {public:    vector
relativeSortArray(vector
& arr1, vector
& arr2) { unordered_map
positionMap; // Populate the position map for (int i = 0; i < arr2.size(); ++i) { positionMap[arr2[i]] = i; } // Sort arr1 based on the position map sort(arr1.begin(), arr1.end(), [&positionMap](int a, int b) { return positionMap[a] < positionMap[b]; }); // Append elements from arr1 not present in arr2, sorted vector
extra; for (int num : arr1) { if (positionMap.find(num) == positionMap.end()) { extra.push_back(num); } } sort(extra.begin(), extra.end()); arr1.insert(arr1.end(), extra.begin(), extra.end()); return arr1; }

转载地址:http://ephdz.baihongyu.com/

你可能感兴趣的文章
发送短信(js小案例)
查看>>
自定义vue模板(name默认是文件名)
查看>>
导出 下载excel 方案(点击下载,下载一个excel模板)
查看>>
git拉取远程指定分支代码
查看>>
C语言--C语言总结大纲
查看>>
轻松理解前后端分离(通俗易懂)
查看>>
蚂蚁金服(Java研发岗),26岁小伙斩获三面,收获Offer定级P6
查看>>
JavaFX官方文档
查看>>
ORA-12154: TNS: 无法解析指定的连接标识符
查看>>
Spring学习总结(十二):Spring中的事务管理
查看>>
CentOS5 Linux编译PHP 报 mysql configure failed 错误解决办法
查看>>
linux时间快8小时解决办法
查看>>
G7相关
查看>>
Linux 激活网卡ifconfig eth1 up 和 ifup eth1 之间的差别
查看>>
In App Purchase Verification using PHP
查看>>
Mapper.xml中新增数据并返回主键ID(MYSQL)
查看>>
shell编程===》进程锁
查看>>
教你如何一招破解简单的joy.dex的卡密系统(Auto.js)
查看>>
Linux小操作LVM
查看>>
Split返回数组元素含有空字符串移除
查看>>