当前位置: 首页 > news >正文

【Leetcode 每日一题】3159. 查询数组中元素的出现位置

问题背景

给你一个整数数组 n u m s nums nums,一个整数数组 q u e r i e s queries queries 和一个整数 x x x
对于每个查询 q u e r i e s [ i ] queries[i] queries[i],你需要找到 n u m s nums nums 中第 q u e r i e s [ i ] queries[i] queries[i] x x x 的位置,并返回它的下标。如果数组中 x x x 的出现次数少于 q u e r i e s [ i ] queries[i] queries[i],该查询的答案为 − 1 -1 1
请你返回一个整数数组 a n s w e r answer answer,包含所有查询的答案。

数据约束

  • 1 ≤ n u m s . l e n g t h , q u e r i e s . l e n g t h ≤ 1 0 5 1 \le nums.length, queries.length \le 10 ^ 5 1nums.length,queries.length105
  • 1 ≤ q u e r i e s [ i ] ≤ 1 0 5 1 \le queries[i] \le 10 ^ 5 1queries[i]105
  • 1 ≤ n u m s [ i ] , x ≤ 1 0 4 1 \le nums[i], x \le 10 ^ 4 1nums[i],x104

解题过程

一开始自己写了个对数组中每个元素都能进行符合条件的查询的解,果然运行效率很低。
实际上只需要记录指定的元素出现的位置,由于 n u m s nums nums 数组长度有限,可以用数组来记录。

具体实现

class Solution {public int[] occurrencesOfElement(int[] nums, int[] queries, int x) {int n = nums.length;int[] list = new int[n + 1];// 初始状态下认为所有元素都不能在 nums 中查询到Arrays.fill(list, -1);for(int i = 0, count = 0; i < n; i++) {if(nums[i] == x) {// 记录某次出现的元素所在的下标list[count++] = i;}}for(int i = 0; i < queries.length; i++) {queries[i] = queries[i] > list.length ? -1 : list[queries[i] - 1];}return queries;}
}
http://www.lryc.cn/news/511541.html

相关文章:

  • xadmin后台首页增加一个导入数据按钮
  • 行为树详解(5)——事件驱动
  • 3.若依前端项目拉取、部署、访问
  • Debian操作系统相对于Ubuntu有什么优势吗?
  • 【漏洞复现】CVE-2015-3337 Arbitrary File Reading
  • win10、win11-鼠标右键还原、暂停更新
  • FFmpeg来从HTTP拉取流并实时推流到RTMP服务器
  • Quo Vadis, Anomaly Detection? LLMs and VLMs in the Spotlight 论文阅读
  • Rust : tokio中select!
  • 【hackmyvm】hacked靶机wp
  • MaixBit k210学习记录
  • Wordperss漏洞 DeDeCMS漏洞
  • 如何构建有效的AI Agents:从复杂到简约——深度解读Claude实践总结《Building effective agents》(上)
  • git status 耗时
  • C++进阶重点知识(一)|智能指针|右值|lambda|STL|正则表达式
  • OSCP打靶大冒险之Solidstate:多端口获取信息,shell逃逸,计划任务提权
  • 八股(One Day one)
  • 如何快速又安全的实现端口转发【Windows MAC linux通用】
  • LongLLMLingua: 长上下文场景的智能提示压缩框架
  • Django serializers:把ValidationError处理的更优雅
  • CASA(Carnegie-Ames-Stanford Approach) 模型原理及实践技术
  • 【HarmonyOS之旅】ArkTS语法(一)
  • 【畅购电商】项目总结
  • python|利用ffmpeg按顺序合并指定目录内的ts文件
  • IP属地和所在地不一致什么意思?怎么换成另外一个地方的
  • Hive其十,优化和数据倾斜
  • matlab reshape permute
  • 数据库sql语句单表查询
  • Linux高级--2.4.2 linux TCP 系列操作函数 -- 深层理解
  • 科技快讯 | 水滴筹成为民政部指定个人求助网络服务平台;小米超级小爱首次向正式版用户开放;腾讯发布全球首个重症医疗大模型