题目

给你两个数组,arr1 和 arr2,arr2 中的元素各不相同,arr2 中的每个元素都出现在 arr1 中。
对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。
示例 1:
输入: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]
示例 2:
输入:arr1 = [28,6,22,8,44,17], arr2 = [22,28,8,6]
输出:[22,28,8,6,17,44]
提示:
1 <= arr1.length, arr2.length <= 1000
0 <= arr1[i], arr2[i] <= 1000
arr2 中的元素 arr2[i] 各不相同
arr2 中的每个元素 arr2[i] 都出现在 arr1 中
来源:力扣(LeetCode)

解题思路

  题目已经说明arr2中的数字都会在arr1中出现。新的序列需要按照arr2的元素的出现顺序排序,假如arr1中的数字都是独一无二的,我们可以将arr1映射到哈希表,然后遍历arr2当arr1中的数字在哈希表里我们就先排那个数字,现在由于arr1中有很多数字是重复的,这就需要使用字典来一并将它们的频率存储起来;另外arr1中可能还有一些元素是arr2中没有的,所以还需要求arr1和arr2的差集,然后将差集里的元素排序后添加到新列表的后面。

class Solution:def relativeSortArray(self, arr1: List[int], arr2: List[int]) -> List[int]:d=collections.Counter(arr1)  #统计arr1中的元素频率temp=[]for i in arr2:temp.extend([i]*d[i])for i in sorted(list(d.keys()-set(arr2))):  #求差集并排序temp.extend([i]*d[i])return temp

LeetCode简单题之数组的相对排序相关推荐

  1. LeetCode简单题之数组形式的整数加法

    题目 对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组.例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]. 给定非负整数 X 的数组形式 A,返回整数 X+ ...

  2. LeetCode简单题之数组中的字符串匹配

    题目 给你一个字符串数组 words ,数组中的每个字符串都可以看作是一个单词.请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词. 如果你可以删除 words[j] 最左侧和/或最 ...

  3. LeetCode简单题之数组序号转换

    题目 给你一个整数数组 arr ,请你将数组中的每个元素替换为它们排序后的序号. 序号代表了一个元素有多大.序号编号的规则如下: 序号从 1 开始编号. 一个元素越大,那么序号越大.如果两个元素相等, ...

  4. LeetCode简单题之数组拆分 I

    题目 给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), -, (an, bn) ,使得从 1 到 n 的 min(ai, bi) ...

  5. LeetCode简单题之数组异或操作

    题目 给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length . 请返回 nums 中所有元素 ...

  6. LeetCode简单题之数组的度

    题目 给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值. 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度. ...

  7. LeetCode简单题之数组元素积的符号

    题目 已知函数 signFunc(x) 将会根据 x 的正负返回特定值: 如果 x 是正数,返回 1 . 如果 x 是负数,返回 -1 . 如果 x 是等于 0 ,返回 0 . 给你一个整数数组 nu ...

  8. LeetCode简单题之数组中两元素的最大乘积

    题目 给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值. 请你计算并返回该式的最大值. 示例 1: 输入:nums = ...

  9. LeetCode简单题之数组中第 K 个独一无二的字符串

    题目 独一无二的字符串 指的是在一个数组中只出现过 一次 的字符串. 给你一个字符串数组 arr 和一个整数 k ,请你返回 arr 中第 k 个 独一无二的字符串 .如果 少于 k 个独一无二的字符 ...

最新文章

  1. iOS 提高tableView 性能的优化
  2. SecureCRT如何显示颜色和高亮显示
  3. versa max_如何从Mac(和Vice Versa)打开或关闭iPhone的Safari选项卡
  4. linux查看vnc进程命令_linux命令:VNC服务的配置及使用
  5. java导数据到Excel
  6. c调用其他类的方法_吊打面试官-类加载器
  7. 【元胞自动机】基于matlab元胞自动机四车道交通流【含Matlab源码 039期】
  8. 涉密计算机检查问题,针对RG涉密信息自检查工具1.0Beta检查出来的电脑泄密问题的应对措施?...
  9. 安装Apache服务器
  10. 内部收益率计算公式用计算机,内部收益率计算器
  11. python中输出编码问题,pyspark、spark.show、
  12. 谷歌浏览器点击上传文件崩溃/上传图片崩溃/打开浏览文件未响应 解决方案
  13. 亚马逊aws 服务器删除_如何关闭Amazon AWS上服务器
  14. 如何开搓饵不掉钩_为什么你开的搓饵总是无鱼咬钩?记住这4点,搓饵比拉饵效果更好...
  15. android 最好的gtd软件,Windows 上的高颜值 GTD 应用,这可能是最棒的一款了:MyerList...
  16. 二维码解码器Zbar 的配置和基本使用
  17. android 选择联系人右侧首字母显示
  18. rating vs nominal 额定和标称区别
  19. SQL SERVER 索引优化——移除键查找(书签查找)或RID查找
  20. Jmockit 静态方法mock

热门文章

  1. 2022-2028年中国盲盒行业市场研究及前瞻分析报告
  2. 2022-2028年中国汽车用胶管行业市场深度分析及投资前景趋势报告
  3. Python 常用内置函数map、zip、filter、reduce、enumerate
  4. Centos7.4安装Nginx
  5. 命名实体识别训练集汇总(一直更新)
  6. ModuleNotFoundError: No module named 'tools.nnwrap' pytorch 安装
  7. pycharm debug后会出现 step over /step into/step into my code /force step into /step out 分别表示...
  8. MindSpore应用目标
  9. 色彩(颜色)空间原理(中)
  10. 硬件加速器为人工智能应用服务