LeetCode 1409. 查询带键的排列(map模拟)

1. 题目

给你一个待查数组 queries ,数组中的元素为 1 到 m 之间的正整数。
请你根据以下规则处理所有待查项 queries[i](从 i=0 到 i=queries.length-1):

  • 一开始,排列 P=[1,2,3,…,m]。
  • 对于当前的 i ,请你找出待查项 queries[i] 在排列 P 中的位置(下标从 0 开始),然后将其从原位置移动到排列 P 的起始位置(即下标为 0 处)。
    注意, queries[i] 在 P 中的位置就是 queries[i] 的查询结果。

请你以数组形式返回待查数组 queries 的查询结果。

示例 1:
输入:queries = [3,1,2,1], m = 5
输出:[2,1,2,1] 
解释:待查数组 queries 处理如下:
对于 i=0: queries[i]=3, P=[1,2,3,4,5], 3 在 P 中的位置是 2,
接着我们把 3 移动到 P 的起始位置,得到 P=[3,1,2,4,5] 。
对于 i=1: queries[i]=1, P=[3,1,2,4,5], 1 在 P 中的位置是 1,
接着我们把 1 移动到 P 的起始位置,得到 P=[1,3,2,4,5] 。 
对于 i=2: queries[i]=2, P=[1,3,2,4,5], 2 在 P 中的位置是 2,
接着我们把 2 移动到 P 的起始位置,得到 P=[2,1,3,4,5] 。
对于 i=3: queries[i]=1, P=[2,1,3,4,5], 1 在 P 中的位置是 1,
接着我们把 1 移动到 P 的起始位置,得到 P=[1,2,3,4,5] 。 
因此,返回的结果数组为 [2,1,2,1] 。  示例 2:
输入:queries = [4,1,2,2], m = 4
输出:[3,1,2,0]示例 3:
输入:queries = [7,5,5,8,3], m = 8
输出:[6,5,0,7,5]提示:
1 <= m <= 10^3
1 <= queries.length <= m
1 <= queries[i] <= m

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/queries-on-a-permutation-with-key
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 按题意模拟即可
class Solution {
public:vector<int> processQueries(vector<int>& queries, int m) {map<int,int> map;//数字,idxint i, j=0, n = queries.size();for(i = 1; i <= m; ++i)map[i] = i-1;vector<int> ans(n);for(i = 0; i < n; ++i){ans[j++] = map[queries[i]];for(auto& mi : map){if(mi.second < map[queries[i]])//idx小于的,需要后移mi.second++;}map[queries[i]] = 0;//被查询数idx值为零}return ans;}
};

648 ms 9.1 MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

根据年月日计算是星期几的函数,基姆拉尔森计算公式

算法如下&#xff1a; 基姆拉尔森计算公式W (d2*m3*(m1)/5yy/4-y/100y/400) mod 7 在公式中d表示日期中的日数&#xff0c;m表示月份数&#xff0c;y表示年数。 注意&#xff1a;在公式中有个与其他公式不同的地方&#xff1a; 把一月和二月看成是上一年的十三月和十四月&#…

centos7 如何安装部署k8s_如何在centos7上安装FreeIPA的客户端

1.文档编写目的在前面的文章《如何在Redhat7上安装FreeIPA》介绍了FreeIPA的安装及使用&#xff0c;本篇文章主要介绍如何在RedHat7上安装FreeIPA的客户端并配置。 2.内容概述1.环境准备2.安装FreeIPA客户端及使用3.总结及异常处理 3.测试环境1.centos 7.62.FreeIPA4.6.44.环境…

何恺明新作来了!更快更有效的训练FLIP

文 | Random源 | AIWalkerpaper&#xff1a;https://arxiv.org/abs/2212.00794本文提出一种用于训练CLIP的简单而有效的方案FLIP(Fast Language-Image Pre-training, FLIP),它在训练过程中对图像块进行大比例的随机Mask移除。Mask机制使得我们可以在有限周期内学习到更多的imag…

LeetCode 1410. HTML 实体解析器(哈希map)

1. 题目 「HTML 实体解析器」 是一种特殊的解析器&#xff0c;它将 HTML 代码作为输入&#xff0c;并用字符本身替换掉所有这些特殊的字符实体。 HTML 里这些特殊字符和它们对应的字符实体包括&#xff1a; 双引号&#xff1a;字符实体为 &quot; &#xff0c;对应的字符…

json和python中字典的区别和联系_Python 中json与字典的关系

Python开发中字典和 json的概念区别&#xff1a; json.dumps( dict )    字典变为字符 json.loads( jsoninput )    字符变为字典 一、字典 字典是一种数据结构&#xff0c;而json是一种数据格式,格式就会有一些形式上的限制&#xff0c;比如json的格式要求必须且只能使…

windows核心编程学习笔记(八)结构化异常处理(Structured Exception Handling)

首先要要知道&#xff0c;结构化异常处理(SEH)和C提供的异常处理不相同。一.Termination HandlersTermination Handlers使用很简单。在想使用SEH处理的地方使用__try{/* [__leave;] */}__finally{/* [AbnormalTermination] */}即可。SEH保证&#xff0c;无论__try中的代码怎样退…

本地唯一985,要去省会了!

源 | 软科&#xff08;ID&#xff1a;zuihaodaxue&#xff09;综合整理自福州市人民政府、各高校官网福州将迎来第三所985高校&#xff01;11月22日&#xff0c;福州市长吴贤德会见厦门大学党委书记张荣一行并座谈&#xff0c;双方就进一步加强校地合作进行深入交流。会上&…

LeetCode 1411. 给 N x 3 网格图涂色的方案数(数学)

1. 题目 你有一个 n x 3 的网格图 grid &#xff0c;你需要用 红&#xff0c;黄&#xff0c;绿 三种颜色之一给每一个格子上色&#xff0c;且确保相邻格子颜色不同&#xff08;也就是有相同水平边或者垂直边的格子颜色不同&#xff09;。 给你网格图的行数 n 。 请你返回给 …

元宇宙这么能赚?平均月薪近4万!

自2021年元宇宙元年之后&#xff0c;大批元宇宙相关岗位涌现在市场。近日&#xff0c;某网站发布《2022元宇宙行业人才发展报告》。2022年1-7月元宇宙相关招聘岗位同比增长16.6%&#xff0c;元宇宙相关岗位的平均招聘月薪18515元&#xff0c;深度学习岗平均月薪39971元&#xf…

sql两个时间之间的小时差_2年级学生每天上学路上有两个小时车程,该如何利用好这个时间?-知乎亲子热点快报/2020/09/04...

为了享受到更好的教育资源&#xff0c;许多家长会选择让孩子入读离家较远的学校&#xff0c;与此同时路上耗费的大量时间也让家长烦恼不已。既不想让孩子劳累过度&#xff0c;也不愿时间被白白浪费。你家孩子在上学路上常常会做些什么&#xff1f;你有什么好的建议呢&#xff1…

LeetCode 1379. 找出克隆二叉树中的相同节点(二叉树遍历)

1. 题目 给你两棵二叉树&#xff0c;原始树 original 和克隆树 cloned&#xff0c;以及一个位于原始树 original 中的目标节点 target。 其中&#xff0c;克隆树 cloned 是原始树 original 的一个 副本 。 请找出在树 cloned 中&#xff0c;与 target 相同 的节点&#xff0…

Oracle定时器(Job)各时间段写法汇总

原作者:博客园一条辉 原文:链接 对于DBA来说&#xff0c;数据库Job再熟悉不过了&#xff0c;因为经常要数据库定时的自动执行一些脚本&#xff0c;或做数据库备份&#xff0c;或做数据的提炼&#xff0c;或做数据库的性能优化&#xff0c;包括重建索引等等的工作。但是&#x…

websocket 带头部信息请求 header_关于websocket跨域的一个奇怪问题

最近在建设 websocket 长连接网关&#xff0c;过程中遇到一件比较奇怪的事情&#xff0c;做下简单的记录。需求十分的简单&#xff0c;websocket 网关在做权限校验的时候期望复用现有登录逻辑的 jwt-token。如下图所示&#xff0c;sso 与 websocket 网关属于不同的二级域名&…

Hinton 最新研究:神经网络的未来是前向-前向算法

文&#xff5c;李梅、黄楠编&#xff5c;陈彩娴源&#xff5c;AI科技评论在未来万亿参数网络只消耗几瓦特的新型硬件上&#xff0c;FF 是最优算法。过去十年&#xff0c;深度学习取得了惊人的胜利&#xff0c;用大量参数和数据做随机梯度下降的方法已经被证明是有效的。而梯度下…

LeetCode 355. 设计推特(哈希map+set)

1. 题目 设计一个简化版的推特(Twitter)&#xff0c;可以让用户实现发送推文&#xff0c;关注/取消关注其他用户&#xff0c;能够看见关注人&#xff08;包括自己&#xff09;的最近十条推文。你的设计需要支持以下的几个功能&#xff1a; postTweet(userId, tweetId): 创建一…

写出一段代码将链表中的两个节点位置互换位置_面试 leetcode 算法专题系列(二)—— 链表...

前言&#xff1a;只照着常考题去刷题确实是一种方法。但调研之后发现自己还是考虑不周&#xff0c;刷题刷的不应该是题&#xff0c;而是解题的思路和熟练程度。于是我决定重新组织一下刷题笔记的讲解顺序&#xff0c;不再以面试常考题来刷。而是以面试出题频率&#xff0c;方法…

感人至深的文章

http://bbs2.news.163.com/bbs/baoliao/75948727.html 转载于:https://www.cnblogs.com/shf/archive/2008/05/12/1192975.html

2022年度最佳开源软件榜单出炉!

源&#xff5c; OSC开源社区&#xff08;ID&#xff1a;oschina2013)InfoWorld 公布了 2022 年最佳开源软件榜单。InfoWorld 是致力于引领 IT 决策者走在科技前沿的国际科技媒体品牌&#xff0c;每年 InfoWorld 都会根据软件对开源界的贡献&#xff0c;以及在业界的影响力评选出…

程序员面试金典 - 面试题 16.13. 平分正方形(数学)

1. 题目 给定两个正方形及一个二维平面。请找出将这两个正方形分割成两半的一条直线。 假设正方形顶边和底边与 x 轴平行。 每个正方形的数据square包含3个数值&#xff0c;正方形的左下顶点坐标[X,Y] [square[0],square[1]]&#xff0c;以及正方形的边长square[2]。 所求直…

吵翻了!确认录取后导师和学生“互放鸽子”,网友:线上选拔太混乱

源 | 募格学术参考 | 中国科学报、科学网博客、知乎等导师和学生互相“放鸽子”是种怎样的体验&#xff1f;近日&#xff0c;《中国科学报》的一篇文章揭露了疫情下线上推免选拔的乱象。因为某些原因&#xff0c;产生了一些所谓“海王院校”&#xff08;指在夏令营或预推免中&a…