LeetCode简单题之数组序号转换

news/2024/11/20 21:21:19/

题目

给你一个整数数组 arr ,请你将数组中的每个元素替换为它们排序后的序号。
序号代表了一个元素有多大。序号编号的规则如下:
序号从 1 开始编号。
一个元素越大,那么序号越大。如果两个元素相等,那么它们的序号相同。
每个数字的序号都应该尽可能地小。
示例 1:
输入:arr = [40,10,20,30]
输出:[4,1,2,3]
解释:40 是最大的元素。 10 是最小的元素。 20 是第二小的数字。 30 是第三小的数字。
示例 2:
输入:arr = [100,100,100]
输出:[1,1,1]
解释:所有元素有相同的序号。
示例 3:
输入:arr = [37,12,28,9,100,56,80,5,12]
输出:[5,3,4,2,8,6,7,1,3]
提示:
0 <= arr.length <= 10^5
-10^9 <= arr[i] <= 10 ^9
来源:力扣(LeetCode)

解题思路

  由于题目中给出的顺序是相等的元素拥有一致的地位,所以需要先对数组进行去重的操作,去重之后排完序就能得到一个元素对应准确的顺序。接下来将各个元素和它自己的顺序位号进行绑定,遍历原数组,访问到哪个元素就先得出哪个元素的顺序即可。

class Solution:def arrayRankTransform(self, arr: List[int]) -> List[int]:d=defaultdict()for i,j in enumerate(sorted(list(set(arr)))):d[j]=i+1return [d[i] for i in arr]

在这里插入图片描述


http://www.ppmy.cn/news/605623.html

相关文章

Webpack快速入门

目录一. 什么是Webpack二. Webpack安装三. 案例&#xff1a;JS打包1. 创建nodejs项目2. 编写js文件3. 编写webpack.config.js4. 打包四. 案例&#xff1a;JS合并CSS1. 安装style-loader和css-loader2. 修改webpack.config.js3. 编写css文件4. 修改main.js5、打包6、打开浏览器测…

LeetCode简单题之字符串中的单词数

题目 统计字符串中的单词个数&#xff0c;这里的单词指的是连续的不是空格的字符。 请注意&#xff0c;你可以假定字符串里不包括任何不可打印的字符。 示例: 输入: “Hello, my name is John” 输出: 5 解释: 这里的单词是指连续的不是空格的字符&#xff0c;所以 “Hello,”…

MongoDB从零开始详细教程(超详细讲解)

目录一、简介1. 简单介绍2. 业务应用场景3. 什么时候选择MongoDB4. 体系机构5. 数据类型6. 特点二、Windows安装&启动&连接1. 下载压缩包2. 解压3. 安装服务4. 启动服务5. shell连接登录&退出6. Compass图形化连接登录三、Linux安装&启动&连接1. 下载压缩包…

numpy数组方法

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a;https://blog.csdn.net/weixin_37887248/article/details/81744755 </div><!--一个博主专栏付费入口--><!-…

MySQL详细学习教程(建议收藏)

目录1、初识数据库1.1、什么是数据库1.2、数据库分类1.3、相关概念1.4、MySQL及其安装1.5、基本命令2、操作数据库2.1、操作数据库2.2、数据库的列类型2.3、数据库的字段属性2.4、创建数据库表2.5、数据库存储引擎2.6、修改数据库3、MySQL数据管理3.1、外键3.2、DML语言1. 添加…

python图像处理实战(三)—图像几何变换

&#x1f680;写在前面&#x1f680; &#x1f58a;个人主页&#xff1a;https://blog.csdn.net/m0_52051577?typeblog &#x1f381;欢迎各位大佬支持点赞收藏&#xff0c;三连必回&#xff01;&#xff01; &#x1f508;本人新开系列专栏—python图像处理 ❀愿每一个骤雨初…

pytorch.range() 和 pytorch.arange() 的区别

总结&#xff1a; torch.range(start1, end6) 的结果是会包含end的&#xff0c; 而torch.arange(start1, end6)的结果并不包含end。 两者创建的tensor的类型也不一样。 参考&#xff1a; torch.range torch.arange