返回顶部
首页 > 资讯 > 精选 >怎么理解LeetCode关于数组的相对排序
  • 183
分享到

怎么理解LeetCode关于数组的相对排序

2023-06-02 00:06:05 183人浏览 薄情痞子
摘要

本篇内容介绍了“怎么理解LeetCode关于数组的相对排序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  给你两个数组,arr1 和 ar

本篇内容介绍了“怎么理解LeetCode关于数组的相对排序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

  给你两个数组,arr1 和 arr2,

  arr2 中的元素各不相同

  arr2 中的每个元素都出现在 arr1 中

  对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。

  示例:

  输入: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]

  提示:

  arr1.length, arr2.length <= 1000

  0 <= arr1[i], arr2[i] <= 1000

  arr2 中的元素 arr2[i] 各不相同

  arr2 中的每个元素 arr2[i] 都出现在 arr1 中

  1、c++

  先遍历arr1中的元素个数,然后遍历arr2按照arr1中对应元素的个数添加进结果数组中,最后将剩余的arr1中的元素按照原顺序的元素个数循环添加。

  class Solution {

  public:

  vector relativeSortArray(vector& arr1, vector& arr2) {

  map m;

  int s1 = arr1.size(), s2 = arr2.size();

  vector res;

  for(int i=0;i

  auto iter = m.find(arr1[i]);

  if(iter!=m.end()){

  int temp = m[arr1[i]]+1;

  m.erase(arr1[i]);

  m.insert(pair(arr1[i], temp));

  }else{

  m.insert(pair(arr1[i], 1));

  }

  }

  for(int i=0;i

  auto iter = m.find(arr2[i]);

  if(iter!=m.end()){

  for(int j=0;jsecond;j++){

  res.push_back(iter->first);

  }

  m.erase(iter);

  }

  }

  for(auto i=m.begin();i!=m.end();i++){

  for(int k=0;ksecond;k++){

  res.push_back(i->first);

  }

  }

  return res;

  }

  };

  2、桶排序郑州妇科医院哪家好 Http://fk.zyfuke.com/

  先统计arr1中元素的数量,注意索引是arr1中的值,然后把arr2中的数按顺序拿完,在把桶中剩下的按顺序拿完。

  public int[] relativeSortArray(int[] arr1, int[] arr2) {

  int[] nums = new int[1001];

  int[] res = new int[arr1.length];

  //遍历arr1,统计每个元素的数量

  for (int i : arr1) {

  nums[i]++;

  }

  //遍历arr2,处理arr2中出现的元素

  int index = 0;

  for (int i : arr2) {

  while (nums[i]>0){

  res[index++] = i;

  nums[i]--;

  }

  }

  //遍历nums,处理剩下arr2中未出现的元素

  for (int i = 0; i < nums.length; i++) {

  while (nums[i]>0){

  res[index++] = i;

  nums[i]--;

  }

  }

  return res;

  }

  3、python

  直接将arr2加上arr1减去arr2中的元素,并按照从小到大排序。然后按照arr2中的下标的顺序对arr1进行排序,其余的按照原来的顺序。

  class Solution:

  def relativeSortArray(self, arr1: List[int], arr2: List[int]) -> List[int]:

  arr2 += sorted(set(arr1)-set(arr2))

  arr1.sort(key=arr2.index)

  return arr1

“怎么理解LeetCode关于数组的相对排序”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 怎么理解LeetCode关于数组的相对排序

本文链接: https://lsjlt.com/news/228185.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么理解LeetCode关于数组的相对排序
    本篇内容介绍了“怎么理解LeetCode关于数组的相对排序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  给你两个数组,arr1 和 ar...
    99+
    2023-06-02
  • go语言题解LeetCode1122数组的相对排序
    目录题目描述 1122. 数组的相对排序 - 力扣(LeetCode) 给你两个数组,arr1 和 arr2,arr2 中的元素各不相同,arr2 中的每个元素都...
    99+
    2022-12-29
    go语言数组相对排序 go 题解LeetCode
  • java怎么对数组降序排序
    Java中可以使用Arrays类的sort()方法对数组进行排序,如果需要降序排序,可以使用Comparator.reverseOr...
    99+
    2023-08-15
    java
  • JavaScript排序对象数组怎么实现
    这篇文章主要介绍“JavaScript排序对象数组怎么实现”,在日常操作中,相信很多人在JavaScript排序对象数组怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • PHP中怎么对多维数组排序
    PHP中怎么对多维数组排序,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。的例子:<php $data = array(array(&qu...
    99+
    2023-06-17
  • JavaScript中怎么对对象数组进行排序
    这期内容当中小编将会给大家带来有关JavaScript中怎么对对象数组进行排序,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。基本数组排序默认情况下,Array.sort函...
    99+
    2024-04-02
  • 关于java的arrays数组排序AJPFX的示例分析
    这期内容当中小编将会给大家带来有关关于java的arrays数组排序AJPFX的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java API对Arrays类的说明是:此类包含用来操作数组(比如排...
    99+
    2023-06-02
  • PHP中怎么对数组进行降序排序
    今天就跟大家聊聊有关PHP中怎么对数组进行降序排序,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。数组降序排序的三个函数:rsort():对数组元素进行降序排序arsort():根据关...
    99+
    2023-06-20
  • Java桶排序的基数排序怎么理解
    这篇文章主要介绍“Java桶排序的基数排序怎么理解”,在日常操作中,相信很多人在Java桶排序的基数排序怎么理解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java桶排序的基数排序怎么理解”的疑惑有所帮助!...
    99+
    2023-06-21
  • vb怎么对数组里的数据进行排序
    在VB中,可以使用Array.Sort方法对数组中的数据进行排序。以下是一个示例代码: Dim myArray() As Integ...
    99+
    2024-02-29
    vb
  • PHP中怎么用数组函数对数组进行升序排序
    这篇文章主要讲解了“PHP中怎么用数组函数对数组进行升序排序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP中怎么用数组函数对数组进行升序排序”吧!今天我们就来看看数组排序中的升序操作,...
    99+
    2023-06-20
  • LeetCode中怎样删除排序数组中的重复项
    本篇文章给大家分享的是有关LeetCode中怎样删除排序数组中的重复项,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 1class Solution { 2...
    99+
    2023-06-19
  • PHP中怎么对整数数组进行排序
    这篇文章将为大家详细讲解有关PHP中怎么对整数数组进行排序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先从标题可知,这回要说的是怎么编写一个PHP类来实现对整数数组的排序,其实在PHP中...
    99+
    2023-06-20
  • 怎么在java中对数组进行排序
    这期内容当中小编将会给大家带来有关怎么在java中对数组进行排序,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统...
    99+
    2023-06-14
  • labview怎么对二维数组进行排序
    在LabVIEW中,可以使用Sort 2D Array函数对二维数组进行排序。以下是一个示例步骤:1. 创建一个二维数组。可以使用B...
    99+
    2023-09-26
    labview
  • php怎么对一维数组进行排序
    这篇文章主要介绍了php怎么对一维数组进行排序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php怎么对一维数组进行排序文章都会有所收获,下面我们一起来看看吧。PHP作为脚本语言,常被用于Web开发方面的应用。...
    99+
    2023-07-05
  • java对数组降序排序的方法是什么
    Java中对数组降序排序的方法有多种,以下是两种常用的方法:1. 使用Arrays类的sort方法,并传入一个Comparator对象来指定降序排序的规则。```javaimport java.util.Arrays;import ja...
    99+
    2023-08-11
    java
  • 怎么在linux中对awk数组进行排序
    怎么在linux中对awk数组进行排序?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码如下:[chengmo@localhost ~]$ awk 'B...
    99+
    2023-06-13
  • 了解PHP中的rsort()函数对数组进行逆序排序
    了解PHP中的rsort()函数对数组进行逆序排序,需要具体代码示例PHP是一种非常流行的服务器端脚本语言,广泛应用于Web开发领域。在PHP中,有许多内置函数可以方便地处理数组。其中,rsort()函数可以对数组进行逆序排序。rsort(...
    99+
    2023-11-18
    PHP 逆序排序 rsort()
  • 使用php怎么对数组进行降序或升序排序
    使用php怎么对数组进行降序或升序排序?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作