LeetCode.1122-相对排序数组(Relative Sort Array)

详解JS取出两个数组中的不同或相同元素 1、取出两个数组的不同元素 var arr1 = [0,1,2,3,4,5]; var arr2 = [0,4,6,1,3,9]; function getArrDifference(arr1, arr2) { return arr1.concat(arr2).filter(function(v, i, arr) { return arr.indexOf(v) === arr.lastIndexOf(v); }); } console.log(getArrDifference(arr1,arr2)); //输出:(4) [2, 5, 6, 9] (1)c 立即下载

这是小川的第393次更新,第427篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第258题(顺位题号是1122)。给定两个数组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[i]都是不同的。

  • 每个arr2[i]都在arr1中。

02 第一种解法

题目的意思是对arr1分两部分排序,前部分的顺序要和arr2中元素的顺序一样,剩余不是arr2中的元素,要按照增序排列。

直接翻译题目即可,利用一个HashMap,将arr2中的元素值作为key,因为arr2中的元素不会重复出现,将value设统一值0,接着遍历arr1,如果当前元素在HashMap中存在,就计数出现的次数,赋值到value上,反之就将其存入ArrayList中。遍历arr2,将对应的元素写入到结果数组中,出现几次就写入几次。最后,如果ArrayList中有剩余未处理的数据,就将其排序,再写入到结果数组中去。

此解法的时间复杂度是O(N),最坏的情况可能到O(N^2),空间复杂度是O(N)。

public int[] relativeSortArray(int[] arr1, int[] arr2) {
    int[] result = new int[arr1.length];
    List<Integer> left = new ArrayList<Integer>();
    Map<Integer, Integer> map = new HashMap<Integer, Integer>();
    for (int num : arr2) {
        map.put(num, 0);
    }
    for (int num : arr1) {
        if (map.containsKey(num)) {
            map.put(num, map.getOrDefault(num, 0)+1);
        } else {
            left.add(num);
        }
    }
    int index = 0, i = 0;
    while (i<result.length && index<arr2.length) {
        int count = map.get(arr2[index]);
        while (count > 0) {
            result[i++] = arr2[index];
            count--;
        }
        index++;
    }
    if (left.size() > 0) {
        Collections.sort(left);
        for (int j=0; j<left.size(); j++) {
            result[i++] = left.get(j);
        }
    }
    return result;
}

03 第二种解法

我们也可以使用计数排序算法,简化计算步骤。

此解法的时间复杂度是O(N),空间复杂度是O(N)。

public int[] relativeSortArray2(int[] arr1, int[] arr2) {
    int[] count = new int[1001];
    // 遍历arr1中的元素并计数
    for (int num : arr1) {
        count[num]++;
    }
    int index = 0;
    // 处理arr2中的元素
    for (int num : arr2) {
        while (count[num] > 0) {
            arr1[index++] = num;
            count[num]--;
        }
    }
    // 处理剩余不是arr2中的元素
    for (int i=0; i<count.length; i++) {
        while (count[i] > 0) {
            arr1[index++] = i;
            count[i]--;
        }
    }
    return arr1;
}

04 第三种解法

我们也可以直接重写排序方法。

此解法的时间复杂度是O(N log(N)),最坏的情况可能到O(N^2 log(N)),空间复杂度是O(N)。

public int[] relativeSortArray3(int[] arr1, int[] arr2) {
    Map<Integer, Integer> map = new HashMap<Integer, Integer>();
    for (int i=0; i<arr2.length; i++) {
        map.put(arr2[i], i);
    }
    // 为方便后面排序,将arr1转成Integer类型的数组
    Integer[] sort = new Integer[arr1.length];
    for (int i=0; i<sort.length; i++) {
        sort[i] = arr1[i];
    }
    Arrays.sort(sort, new Comparator<Integer>() {

        @Override
        public int compare(Integer a, Integer b) {
            // a和b都不是arr2中的元素
            if (!map.containsKey(a) && !map.containsKey(b)) {
                return a - b;
            }
            // 不能直接使用map.get(key),会报空指针
            return map.getOrDefault(a, arr1.length) - 
                    map.getOrDefault(b, arr1.length);
        }
    });
    // 将排序后的sort数组元素回写到arr1中去
    for (int i=0; i<arr1.length; i++) {
        arr1[i] = sort[i];
    }
    return arr1;
}

05 小结

算法专题目前已连续日更超过八个月,算法题文章264+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

UE游戏引擎材质简单入门 什么是物体的材质,材质属性定义了物体的某些特性,从而决定了物体表面是如何与光线相作用的。UE中物理基础渲染(Physically Based Rendering OR PBR)几乎可以让我们模拟显示世界中的任何材质。那么如何在UE中制作出真实的PBR材质,基于我们提供的游戏引擎插件,如何将这些材质资源导出,并应用到 SuperMap iClient3D for Cesium/WebGL 平台上,提升模型的显示效果呢,下面小编将详细讲解一下。 阅读详情

相关推荐

项目计划书、规划文档模板

项目计划书、规划文档模板 最近通过项目实践经历,整理出的一套项目计划书(仅供自己参考梳理思路使用) 有喜欢的文末加VX 辛苦码字如有转载请标明出处谢谢!——木研 更新的简版项目规划文档! 原版文件请+vx :baierfa ...

weixin_43194923的博客 991

1122 数组的相对排序(字典计数)

1. 问题描述: 给你两个数组,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, ...

二哈 824

2025最新OSM中国矢量数据保姆级下载指南(附百度网盘链接)

本文提供2025年OSM中国矢量数据的保姆级下载与使用指南。详细介绍了通过Geofabrik镜像站、QGIS插件及第三方平台获取数据的多种途径,重点解析了Shapefile格式数据的结构、WGS84坐标系特性,并指导进行格式转换与基础GIS应用,帮助用户高效合规地获取并利用这份开放地理数据资源。

weixin_29228781的博客 884

LeetCode 每日一题1122:数组的相对排序

1122.数组的相对排序 给你两个数组,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.leng

雷震子的博客 1394

从MFCC到GMM:手把手教你用Python实现说话人识别(附完整代码)

本文详细介绍了如何使用Python实现说话人识别系统,从MFCC特征提取到GMM模型训练,涵盖完整的技术流程和代码示例。通过梅尔频率倒谱系数(MFCC)和高斯混合模型(GMM)的结合,构建高效的说话人识别系统,适用于身份认证和智能交互场景。文章还探讨了从传统方法到深度学习的进阶话题,如i-vector和x-vector技术。

o1p2q3r的博客 201

正负数据如何归一化_生信干货 | LC-MS代谢组学QI软件下机数据代谢物筛选和归一化如何做?...

上海·2019第一届多层组学前言技术发展华东区客户研讨会倒计时1天LC-MS非靶向代谢组学数据下机啦~~拿到一堆数据怎么办?不会高端代码,也不会自己写脚本,我怎么处理数据?​本期小编带来了LC-MS非靶向代谢组学下机数据处理实用干货,包括:下机定性结果表格的解析、代谢物筛选如何做?以及定量数据如何做归一化?实用干货,赶紧来抢~~话不多说,赶紧来学习吧~~非靶向LC-MS代谢组学的分析流程LC-MS...

weixin_36441329的博客 2986

LeetCode之数组的相对排序

题目: 给你两个数组,arr1 和 arr2, arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中 对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾 方法一:计数排序 算法思路: 这一题第一反应是自定义比较函数,然后再进行排序,但是做完之后参考^2 发现,最简单的是用计数排序,充分利用了题目所给提示信息 思路也很清晰,先将arr1中的数全都记录到数组count中,然后遍历arr

weixin_44827241的博客 648

从SIGGRAPH审稿人视角看:什么样的TOG论文更容易被接收?

本文从SIGGRAPH审稿人视角深入解析TOG论文的审稿标准与投稿策略,揭示如何提升论文接收概率。重点探讨创新性、技术深度、实验验证等核心评分维度,并提供写作技巧与审稿意见应对策略,帮助研究者优化ACM Transactions on Graphics投稿质量。

weixin_33721344的博客 109

LeetCode 1122——数组的相对排序(计数排序)

一、题目介绍 给你两个数组,arr1 和arr2, arr2中的元素各不相同 arr2 中的每个元素都出现在arr1中 对 arr1中的元素进行排序,使 arr1 中项的相对顺序和arr2中的相对顺序相同。未在arr2中出现过的元素需要按照升序放在arr1的末尾。 示例: 输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2...

Asher 609

MySQL下载和安装教程

1.下载MySQL数据库可以访问官方网站:https://www.mysql.com/ 2.点击DOWNLOADS模块下的Community模块下的MySQL Community Server进行下载。 由于目前最新版本是:MySQL Community Server 5.7.21 建议博友下载历史版本,本博下载的是5.6.39 下载步骤: 进入,选择MySQL的版本及主机 根据自己的电脑选择相应的位数进行下载,本机是64位,点击download。 进入下.

残雪的剑的博客 4万+

【ArcGIS Pro微课1000例】0073:ArcGIS Pro3.5.2学习版下载及安装教程

ArcGIS Pro 3.5.2安装教程摘要:系统需Windows10及以上,8GB内存(推荐32GB)。安装步骤:1)安装.NET 8.0运行环境;2)执行主程序安装包,按向导完成基础安装;3)安装升级补丁;4)替换AfCore.dll文件并导入注册表。注意安装后删除临时文件节省空间。软件下载地址包含在百度网盘链接。安装过程需依次完成环境配置、主程序安装、补丁更新及破解步骤。

智慧空间实验室 1785

数组的相对排序

给你两个数组,arr1 和arr2,arr2中的元素各不相同,arr2 中的每个元素都出现在arr1中。 对 arr1中的元素进行排序,使 arr1 中项的相对顺序和arr2中的相对顺序相同。未在arr2中出现过的元素需要按照升序放在arr1的末尾。

LTY3301398968的博客 427

Python爬虫:抓取专利数据并分析专利趋势

本文展示了如何使用 Python 爬虫技术抓取中国专利数据,并对数据进行了清洗、分析和趋势预测。通过分析专利数据,企业和科研机构可以了解行业的技术发展趋势,进行技术创新战略规划。未来,我们可以进一步扩展爬虫的功能,抓取更多专利数据,增加多维度的数据分析,如技术领域、地域分布等。同时,可以尝试使用深度学习模型(如 LSTM)进行时间序列预测,以获得更准确的专利趋势预测。

2201_76125261的博客 1787

Leetcode 1122.数组的相对排序(Relative Sort Array)

Leetcode 1122.数组的相对排序 1 题目描述(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

qq_39378221的博客 273

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LeetCode-1122. Relative Sort Array(数组的相对排序)

数组的相对排序 Relative Sort Array 解 方法一: 暴力算法,数据较大时耗时会很大,就不写了。 方法二: map,同时可以自动排序。这里要求重新申请内存,但不申请也可以过。 int *relativeSortArray(int *arr1, int arr1Size, int *arr2, int arr2Size, int *returnSize) { int li...

三九_感冒灵的博客 280

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

LeetCode 1122:数组的相对排序(Relative Sort Array)解法汇总

文章目录My Solution 更多LeetCode题解 Given two arrays arr1 and arr2, the elements of arr2 are distinct, and all elements in arr2 are also in arr1. Sort the elements of arr1 such that the relative ordering of ...

Utopiabuntu的博客 595

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【LeetCode】1122. Relative Sort Array 数组的相对排序(Easy)(JAVA)

【LeetCode】1122. Relative Sort Array 数组的相对排序(Easy)(JAVA) 题目地址: https://leetcode.com/problems/relative-sort-array/ 题目描述: Given two arrays arr1 and arr2, the elements of arr2 are distinct, and all elements in arr2 are also in arr1. Sort the elements of arr1 s

qq_16927853的博客 217

leetcode.1122. 数组的相对排序(relative-sort-array)

1122. 数组的相对排序(relative-sort-array) 给你两个数组,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

mirana的专栏 386

[Swift]LeetCode1122. 数组的相对排序 | Relative Sort Array

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://www.cnblogs.com/streng...

weixin_30306905的博客 142

leetcode 1122. Relative Sort Array 数组的相对排序-耗时100

Problem:耗时100%,哈希表,数值对应优先级顺序,arr2中索引就是优先级arr1中不在arr2内的数字放在最后而且是升序排列,所以优先级顺序最大而且按照常规顺序排列,所以它们的优先级顺序就是 自身 + 2000,即arr1[i] + 2000。

邹九的个人博客 69

【leetcode】1122. 数组的相对排序(relative-sort-array)(模拟)[简单]

链接 https://leetcode-cn.com/problems/relative-sort-array/ 耗时 解题:12 min 题解:12 min 题意 给你两个数组,arr1 和 arr2, arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中 对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。 思路 计数排序的思想。 用哈希表做离散化,计数 arr1 中每个元素

Krone_的博客 201

Leetcode每日一题:1122.relative-sort-array(数组的相对排序)

思路:本题要求先按顺序放入arr2对应元素的前提下,再从小到大放入arr1中出现的其他元素;我们就可以先对arr1中的元素进行排序,因为只要有从小到大,肯定离不开排序,然后再优先放入arr2元素,同时把该元素置为-1,从而保证之后放入arr1其他元素时不再出现该元素,放完arr2就可以放arr1的元素了;因为最大元素和元素个数都在1000以内,所以我用的计数排序以换取更短的时间; vector<int> relativeSortArray(vector<int> &arr.

CodeLuweir 的博客 342

LeetCode | 1122. Relative Sort Array

题外话: 刚看完《大空头》,趁着感慨+激动刷个题~ 最近Leetcode更新题目的频率已经完全超出了做题的速度= = 题目: Given two arraysarr1andarr2, the elements ofarr2are distinct, and all elements inarr2are also inarr1. Sort the elements...

iLOVEJohnny的博客 605

leetcode 1122. Relative Sort Array 解法 python

一.问题描述 Given two arraysarr1andarr2, the elements ofarr2are distinct, and all elements inarr2are also inarr1. Sort the elements ofarr1such that the relative ordering of items inarr1are th...

CSerwangjun的博客 704

leetcode1122. Relative Sort Array

【代码】leetcode1122. Relative Sort Array。

weixin_44245188的博客 541

LeetCode - 1122. Relative Sort Array

题目:LeetCode - 1122. Relative Sort Array 解题思路: 首先将arr1中不在arr2的元素单独存储在数组v2,arr1中在arr2也存在的元素存储在数组v1,然后对数组v2可简单排序,对v1排序方法是,遍历arr2并以此从v1中取元素,即可保证v1中元素的顺序与arr2一致。 代码: class Solution { public: vector&lt...

virgilshi的博客 266
上一篇: LeetCode.1108-使IP地址无效(Defanging an IP Address)
下一篇: LeetCode.1128-等价多米诺骨牌对的数量(Number of Equivalent Domino Pairs)
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值