博客
关于我
LeetCode 1122 数组的相对排序-简单-unordered_map容器的应用
阅读量:489 次
发布时间: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/

你可能感兴趣的文章
Pandas Plots:周末的单独颜色,x 轴上漂亮的打印时间
查看>>
Pandas 对数据框的布尔比较
查看>>
Pandas 读取具有浮点值的 csv 文件会导致奇怪的舍入和小数位数
查看>>
pandas 适用,但仅适用于满足条件的行
查看>>
Pandas-通过对列和索引的值求和来合并两个数据框
查看>>
pandas.read_csv()的详解-ChatGPT4o作答
查看>>
Pandas数据可视化怎么做?用实战案例告诉你!
查看>>
Pandas数据结构之DataFrame常见操作
查看>>
pandas整合多份csv文件
查看>>
pandas某一列转数组list
查看>>
Pandas模块,我觉得掌握这些就够用了!
查看>>
Pandas玩转文本处理!
查看>>
pandas的to_sql方法中使用if_exists=‘replace‘
查看>>
pandas读取parquet报错
查看>>
Pandas进阶大神!从0到100你只差这篇文章!
查看>>
spring5-介绍Spring框架
查看>>
Pandas:将一列与数据帧的所有其他列进行比较
查看>>
PandoraFMS 监控软件 SQL注入漏洞复现
查看>>
PandoraFMS 监控软件 任意文件上传漏洞复现
查看>>
Parallel.ForEach的基础使用
查看>>