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

2200、找出数组中的所有K近邻下标

题目:

解答:

思路:定位所有key下标位置,遍历以key为中心的,左右长度为k的窗口,判断是否已经添加到ans中,没有则添加

优化:部分下标会重复遍历,因此需要一个变量来存储“已经遍历过的下标”的信息,这样可以减少判断的步骤

边界为[0,len-1],使用min/max调整即可

len==1时,直接return即可,因为题设说明了nums中一定存在key

class Solution {
public:vector<int> findKDistantIndices(vector<int>& nums, int key, int k) {vector<int> ans;int len =nums.size();int curmin = 0;if(len==1){ans.push_back(0);return ans;}for(int i=0;i<len;i++){if(nums[i]==key){int curmax=min(len-1,i+k);curmin = max(curmin,i-k);for(int j=curmin;j<=curmax;j++){ans.push_back(j);}curmin = curmax+1;if(curmin>=len) break;}}return ans;}
};

时间复杂度O(n),n为nums长度

空间复杂度O(n)

http://www.lryc.cn/news/574897.html

相关文章:

  • SoC仿真环境中自定义printf函数的实现
  • Sivers毫米波产品系列全景图:覆盖通信、工业、交通、航天
  • Android14音频子系统-Audio HAL分析
  • 【Elasticsearch】es初识,在项目架构中的用途,与mysql和kafka的配合使用,
  • 基于Kafka实现企业级大数据迁移的完整指南
  • 数据结构篇-二分图
  • 【世纪龙科技】新能源汽车VR虚拟体验展示馆-解锁认知新维度
  • 计算机网络 网络层:数据平面(二)
  • Excel基础:选择和移动
  • java 对接ETH(以太坊) 交易相关资料
  • 量学云讲堂2025朱永海慢牛开启第58期视频课程
  • 物流涂层科技赋能仓储:创冷科技引领高温环境下的仓储物流安全升级
  • 了解笔记本电脑制造:从品牌到代工厂的全产业链
  • GaussDB实例级自动备份策略:构建数据安全的“自动防护网”
  • 设计模式:揭秘Java原型模式——让复杂对象的创建不再复杂
  • 气象数据技术解析:格点模型与区域站观测的原理、差异及数据接口获取
  • 【笔记】Docker 配置阿里云镜像加速(公共地址即开即用,无需手动创建实例)
  • 《解码音频:从基础到未来的听觉探索》
  • window系统上labelImg的安装与使用
  • Jenkins X + AI:重塑云原生时代的持续交付范式
  • React19源码系列之 API (react)
  • Spring Boot 系统开发:打造高效、稳定、可扩展的企业级应用
  • Flutter MobX 响应式原理与实战详解
  • 将Python Tkinter程序转换为手机可运行的Web应用 - 详细教程
  • 高效学习的系统化策略
  • 初识Tomcat
  • Linux系统之Tomcat服务
  • web端rtmp推拉流测试、抽帧识别计数,一键式生成巡检报告
  • 覆盖迁移工具选型、增量同步策略与数据一致性校验
  • Serverless架构下的OSS应用:函数计算FC自动处理图片/视频转码(演示水印添加+缩略图生成流水线)