LeetCode 1122(简单)
题目内容:
给你两个数组,arr1 和 arr2,arr2 中的元素各不相同,arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。
【分析】本题用两种方法第一种使用到了C++的stl,sort并自定义升序规则;
第二种则使用了桶排序(计数排序)。
【方法一】
class Solution
{
public:
vector<int> relativeSortArray(vector<int>& arr1, vector<int>& arr2)
{
int rank[1001] = {
0};
for(int i = 0; i < arr2.size(); ++i)
{
rank[arr2[i]] = i+1;
}