【LeetCode】2418.按身高排序

leetcode2418按身高排序 这道题没什么难的 用js写的 运行环境是nodejs 发现js对处理输入输出能力十分有限 给stdin添加监听事件处理的输入输出 在leetcode这里还好 如果真的需要输入输出可能直接挂这了。后续算法可能会使用python 优点受不了缩进表示结构和它的for迭代。请按身高 降序 顺序返回对应的名字数组。表示第 i 个人的名字和身高。数据是分开的 处理好数据 按照。 阅读详情

 给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。

对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。

请按身高 降序 顺序返回对应的名字数组 names 。

示例 1:

输入:names = ["Mary","John","Emma"], heights = [180,165,170]
输出:["Mary","Emma","John"]
解释:Mary 最高,接着是 Emma 和 John 。

示例 2:

输入:names = ["Alice","Bob","Bob"], heights = [155,185,150]
输出:["Bob","Alice","Bob"]
解释:第一个 Bob 最高,然后是 Alice 和第二个 Bob 。

提示:

  • n == names.length == heights.length
  • 1 <= n <= 103
  • 1 <= names[i].length <= 20
  • 1 <= heights[i] <= 105
  • names[i] 由大小写英文字母组成
  • heights 中的所有值互不相同


方法一:排序

思路与算法:创建一个索引数组index,根据heights[i]对index[i]排序,最后遍历存储入字符串数组。

class Solution {
public:
    vector<string> sortPeople(vector<string>& names, vector<int>& heights) {
        int n = names.size();
        vector<int> index(n);
        //index初始化
        iota(index.begin(), index.end(), 0);
        //排序索引
        sort(index.begin(), index.end(), [&](int a, int b) {
            return heights[a] > heights[b];
        });
        //存储入字符串数组
        vector<string> s(n);
        for (int i = 0; i < n; i++) {
            s[i] = names[index[i]];
        }
        return s;
    }
};

class Solution {
    public String[] sortPeople(String[] names, int[] heights) {
        int n = names.length;
        //这里注意要用Integer创建索引数组,java的许多api不支持int,其中就包含Arrays.sort
        Integer[] index = new Integer[n];
        for (int i = 0; i < n; i++) {
            index[i] = i;
        }
        Arrays.sort(index, (a, b) -> heights[b] - heights[a]);
        String[] s = new String[n];
        for (int i = 0; i < n; i++) {
            s[i] = names[index[i]];
        }
        return s;
    }
}


方法二:哈希表

思路与算法:姓名和身高存入哈希表中,TreeMap可实现Integer身高排序,之后获取键值遍历存储姓名至字符串数组即可即可。 

class Solution {
    public String[] sortPeople(String[] names, int[] heights) {
        //创建TreeMap存储键值 这里可直接进行排序
        Map<Integer,String> mp = new TreeMap<>();
        int n = names.length;
        for(int i = 0;i<n;i++){//数据存入哈希表
            mp.put(heights[i],names[i]);
        }
        //获取键值
        Set<Integer> keySet = mp.keySet(); 
        //获取value并遍历存入字符串数组
        String s[] = new String[n];
        for(Integer i: keySet){
            s[--n] = mp.get(i);
        }
        return s;
    }
}

生物信息学名词解释 | K-mer (长度为k的短序列) K-mer 何谓K-mer 所谓Kmer,即为一段长度为k的DNA片段,是由测序reads剪切一部分得到的。k为一个奇数,k=几,就为几mer。 比如:我的测序reads长度为100bp,我将这100bp打断成17bp的短片段,打断后的17bp段片段就叫17mer,可以获得(100-17+1)条k-mer序列。 Table1 k-mers for GTAGAGCTGT. k k-mers 1 G,T,A,G,A,G,C,T,G,T 3 GTA,TAG,AGA,GAG,AGC,GCT,CT 阅读详情

相关推荐

AI大模型与碳足迹评估结合模式及示范案例

AI大模型与碳足迹评估相结合,可以提供更精确、更快速的碳排放量计算,优化减排策略,并促进可持续发展目标的实现。

贾贾的博客 3943

LeetCode——2418. 按身高排序

2418. 按身高排序

FuckerGod的博客 634

Excel数据分析实例

Excel数据分析实例 Excel数据分析五步走: 明确目的——观察数据——数据清洗——数据分析——数据可视化 数据是从Kaggle上下载的,牛油果的案例 目的 数据分析都是为了企业业务做得更好,这次案例主要针对于牛油果的销售量进行分析。 数据 检查是否有缺失值、是否一致化、是否有脏数据 分析 1.不同区域不同季度的牛油果价格走势 从上图中可以看出,东北地区的价格一直较高,而中南地区一直较低 2.2015-2018四年不同城市的销售总和 3.四年间不同城市的销售排名(降序排序) 可视化 1.四年间销

m0_53033371的博客 4368

2418. 按身高排序

方法二:各种排序方法,例如选择排序、冒泡排序等。主要运用了map自动排序的性质。

huantingyizhan的博客 408

python 识别滑块验证码

博客来源于: https://www.cnblogs.com/wyh0923/p/16528354.html # -*- coding: utf-8 -*- # https://gov.pkulaw.cn/ 1. import io 2. import json 3. from pathlib import Path 4. from PIL import Image 5. import bas...

2102

PHP证书图片生成

$realname = "姓名"; $schoolname = "学校"; $idcard = "身份证号"; $image = imagecreatefrompng('certification.png'); // 证书模版图片文件的路径 $red = imagecolorallocate($image,00,00,00); // 字体颜色

4036

【LeetCode笔记】406. 根据身高重建队列(Java、偏数学)

文章目录题目描述思路 && 代码 题目描述 老阅读题了= =,第一遍看题的时候一脸懵逼 但其实代码就6行(嘿嘿) 思路 && 代码 先按照身高降序排,再按照人数升序排(套路题) class Solution { public int[][] reconstructQueue(int[][] people) { // 身高降序,人数升序 Arrays.sort(people, (p1, p2) -> ((p1[0] ==

只能说希望每日一更 295

示波器学习(一):示波器的作用、类型和基本结构

示波器的作用、使用场景;示波器的类型和基本结构介绍

qq_41300605的博客 9141

LeetCode简单题之按身高排序

给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。请按身高 降序 顺序返回对应的名字数组 names 。示例 1:输入:names = [“Mary”,“John”,“Emma”], heights = [180,165,170] 输出:[“Mary”,“Emma”,“John”] 解释:Mary 最高,接着是 Emma 和 John 。 示例 2:

Lonery的博客 1303

从厘米级到公里级:北斗网格10级精度在ArcPro中的完整应用指南

本文提供了北斗网格十级精度体系在ArcGIS Pro中的完整应用指南。详细解析了从660公里到1.5厘米的十级网格尺度及其编码逻辑,并重点演示了如何在ArcPro中生成网格、计算编码,以及根据项目需求(如滑坡监测)选择合适精度层级的实战策略。指南旨在帮助GIS专业人士利用这套统一的网格框架,高效管理多尺度空间数据并优化分析工作流。

Black的专栏 472

用 ABAP 驾驭 OAuth 2.0:从 Authorization Code 到 SAML Bearer 的全栈落地指南

ABAP平台OAuth 2.0客户端开发实践 本文为SAP开发者详细解析ABAP平台内置OAuth 2.0客户端的使用方法,涵盖四种授权流的最佳实践: 授权流选择: Authorization Code:适用于用户交互场景 SAML 2.0 Bearer:适合已有SAML体系的企业 Client Credentials:系统间通信 Password Credentials:过渡方案(不推荐) 配置流程: 通过SE80定义Client Profile 使用SOAUTH2_CLIENT/OA2C_CONFIG配

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 309

406  根据身高和序号重新排序

点击此处返回总目录 【题目】 【...

liupc的学习笔记 1985

n8n智能体开发:Microsoft Outlook 节点

使用 Microsoft Outlook 节点可以自动化 Microsoft Outlook 工作流程,并将其与其他应用程序集成。n8n 内置支持多种 Microsoft Outlook 功能,包括创建、更新、删除和获取文件夹、邮件及草稿等操作。

王国平的博客 570

leetcode2418:按身高排序

顺序返回对应的名字数组。

qq_55630615的博客 248

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

(每日一题) 力扣 2418. 按身高排序

(每日一题) 力扣 2418. 按身高排序

shiyue 547

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LeetCode 2418:按身高排序(贪心算法) —— 题解

贪心算法——田忌赛马的前提了解

2601_96587588的博客 445

python-leetcode-2418. 按身高排序

可以通过将名字和身高配对成一个元组的方式,然后按照身高对这些元组进行排序,最后提取排序后的名字数组。

Lucy_wzw的博客 325

力扣 2418.按身高排序

输入:names = ["Mary","John","Emma"], heights = [180,165,170]输入:names = ["Alice","Bob","Bob"], heights = [155,185,150]对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。解释:第一个 Bob 最高,然后是 Alice 和第二个 Bob。输出:["Mary","Emma","John"]输出:["Bob","Alice","Bob"]

weixin_70550688的博客 508

LeetCode 2418. 按身高排序

LeetCode 2418. 按身高排序 给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。 对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。 请按身高 降序 顺序返回对应的名字数组 names 。

<font color="Pink">Tisfy的博客</font> 655

LeetCode-2418-按身高排序

主要理解:Arrays.sort(indice, (a, b) -> heights[b] - heights[a]);给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights。链接:https://leetcode.cn/problems/sort-the-people。对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。请按身高 降序 顺序返回对应的名字数组 names。题解思路:可以通过一个索引数组来找heights。

Arbicoral的博客 412

leetcode2418.按身高排序

通过一个lamda表达式来改变index的排序策略,从而通过index数组的下标记录来队名字有了降序。就是创建一个身高:名字的哈希表,先将每个人名字和身高的对应信息存入哈希表中,然后再将升。高降序排序,最后再将升高对应的哈希表中的名字取出,就返回了对应的按身高降序排序的名字,这种方法才是本道题的最优解,设置一个下标数组,通过对身高的排序对下标数组进行排序,然后。这种方法是最常见的,但并不是最优的。顺序返回对应的名字数组。这就是这道题的两种解法。

m0_61497245的博客 383

​力扣解法汇总2418. 按身高排序

然后对heights排序,然后按照排序后的结果,从map中找对应,生成新的字符串数组result。第一个 Bob 最高,然后是 Alice 和第二个 Bob。* 生成一个map,映射names和heights的关系。Mary 最高,接着是 Emma 和 John。顺序返回对应的名字数组。

分享+记录 574

leetcode 2418. 按身高排序

leetcode 2418. 按身高排序

smilling sky的博客 760

根据身高排序(力扣2418)

输入:names = ["Mary","John","Emma"], heights = [180,165,170]输入:names = ["Alice","Bob","Bob"], heights = [155,185,150]对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。解释:第一个 Bob 最高,然后是 Alice 和第二个 Bob。输出:["Mary","Emma","John"]输出:["Bob","Alice","Bob"]

jiangzuofengqiao的博客 670

力扣T2418. 按身高排序 C

先创建一个结构体,包含两个元素:人的名字和身高。将原来分开的两个数组名字和身高存储到结构体数组,再对结构体按照身高的降序进行快排,存储名字返回即可。给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights。两个数组的长度均为 n。对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。请按身高 降序 顺序返回对应的名字数组 names。

K_4827的博客 270

力扣2418( 按身高排序)

给你一个字符串数组names,和一个由的正整数组成的数组heights。两个数组的长度均为n。对于每个下标inames[i]和heights[i]表示第i个人的名字和身高。请按身高顺序返回对应的名字数组names。Mary 最高,接着是 Emma 和 John。第一个 Bob 最高,然后是 Alice 和第二个 Bob。heights。

2301_77721901的博客 191
上一篇: Java中的Map(三种双列集合万字详解)
下一篇: 【LeetCode】1031. 两个非重叠子数组的最大和
天皓Oo
博客等级 码龄5年 337粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值