文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你一个下标从 0 开始的整数数组 nums 和两个整数 key 和 k 。
K 近邻下标 是 nums 中的一个下标 i ,并满足至少存在一个下标 j 使得 |i - j| <= knums[j] == key

以列表形式返回按 递增顺序 排序的所有 K 近邻下标。

示例 1:
输入:nums = [3,4,9,1,3,9,5], key = 9, k = 1
输出:[1,2,3,4,5,6]
解释:因此,nums[2] == key 且 nums[5] == key 。
- 对下标 0 ,|0 - 2| > k 且 |0 - 5| > k ,所以不存在 j 使得 |0 - j| <= k 且 nums[j] == key 。所以 0 不是一个 K 近邻下标。
- 对下标 1 ,|1 - 2| <= k 且 nums[2] == key ,所以 1 是一个 K 近邻下标。
- 对下标 2 ,|2 - 2| <= k 且 nums[2] == key ,所以 2 是一个 K 近邻下标。
- 对下标 3 ,|3 - 2| <= k 且 nums[2] == key ,所以 3 是一个 K 近邻下标。
- 对下标 4 ,|4 - 5| <= k 且 nums[5] == key ,所以 4 是一个 K 近邻下标。
- 对下标 5 ,|5 - 5| <= k 且 nums[5] == key ,所以 5 是一个 K 近邻下标。
- 对下标 6 ,|6 - 5| <= k 且 nums[5] == key ,所以 6 是一个 K 近邻下标。
因此,按递增顺序返回 [1,2,3,4,5,6] 。 示例 2:
输入:nums = [2,2,2,2,2], key = 2, k = 2
输出:[0,1,2,3,4]
解释:对 nums 的所有下标 i ,总存在某个下标 j 使得 |i - j| <= k 且 nums[j] == key ,所以每个下标都是一个 K 近邻下标。
因此,返回 [0,1,2,3,4] 。提示:
1 <= nums.length <= 1000
1 <= nums[i] <= 1000
key 是数组 nums 中的一个整数
1 <= k <= nums.length

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-all-k-distant-indices-in-an-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 模拟,一次遍历,时间复杂度 O(n)O(n)O(n)
class Solution {public:vector<int> findKDistantIndices(vector<int>& nums, int key, int k) {vector<int> ans;int n = nums.size();for(int i = 0; i < n; ++i){if(nums[i] == key){int prevpos = ans.size() ? ans.back() : -1;for(int j = max(prevpos+1, i-k); j <= min(n-1, i+k); ++j)ans.push_back(j);}}return ans;}
};

4 ms 10.3 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 2200. 找出数组中的所有 K 近邻下标相关推荐

  1. 力扣 2200. 找出数组中的所有 K 近邻下标

    题目 给你一个下标从 0 开始的整数数组 nums 和两个整数 key 和 k .K 近邻下标 是 nums 中的一个下标 i ,并满足至少存在一个下标 j 使得 |i - j| <= k 且 ...

  2. LeetCode 1985. 找出数组中的第 K 大整数(排序)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串数组 nums 和一个整数 k . nums 中的每个字符串都表示一个不含前导零的整数. 返回 nums 中表示第 k 大整数的字符串. 注 ...

  3. 1985. 找出数组中的第 K 大整数

    1985. 找出数组中的第 K 大整数 给你一个字符串数组 nums 和一个整数 k .nums 中的每个字符串都表示一个不含前导零的整数. 返回 nums 中表示第 k 大整数的字符串. 注意:重复 ...

  4. LeetCode 1394. 找出数组中的幸运数(map计数)

    文章目录 1. 题目 2. 解题 2.1 map计数 2.2 Python3解 1. 题目 在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」. 给你一个整数数组 a ...

  5. LeetCode 2108. 找出数组中的第一个回文字符串

    文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串数组 words ,找出并返回数组中的 第一个回文字符串 .如果不存在满足要求的字符串,返回一个 空字符串 "" . 回 ...

  6. LeetCode 2150. 找出数组中的所有孤独数字(哈希)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个整数数组 nums .如果数字 x 在数组中仅出现 一次 ,且没有 相邻 数字(即,x + 1 和 x - 1)出现在数组中,则认为数字 x 是 ...

  7. [LeetCode] Find All Numbers Disappeared in an Array 找出数组中所有消失的数字

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  8. 剑指offer 有人相爱,有人夜里开车看海,有人leetcode第一题都做不出来(leetcode有空就刷系列之找出数组中重复的数字)

    数组中重复的数字 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找 ...

  9. 图解面试题:找出数组中重复的数字?

    今天分享的题目来源于 LeetCode 上的剑指 Offer 系列 面试题03. 数组中重复的数字. 题目链接:https://leetcode-cn.com/problems/shu-zu-zhon ...

最新文章

  1. [转载]二叉树(BST,AVT,RBT)
  2. 整型和浮点型的区别_C的基础内容:常量之数值型常量,适合新手的学习
  3. DL之Attention-ED:基于TF NMT利用带有Attention的 ED模型训练、测试(中英文平行语料库)实现将英文翻译为中文的LSTM翻译模型过程全记录
  4. Delphi下的COM编程
  5. 三十八、Java集合中的ConcurrentHashMap
  6. Android: 在WebView中获取网页源码
  7. jQuery读取和设定KindEditor值的方法
  8. modal verbs(一)
  9. noteless的博客导航页 所有文章的导航页面
  10. 程序设计-股票最大收益问题(Java)
  11. JavaScript自动切换并播放视频 | Tampermonkey
  12. [Poi2003 ][bzoj 2601]MAL猴子捞月
  13. 穆迪分析宣布推出云服务,助力银行实现监管合规
  14. 服务器站点地址是什么意思,云服务器地址是什么意思
  15. android平台开发板外接罗技C525摄像头不支持扫码有什么办法解决
  16. 2.SQL的CRUD操作
  17. 剑灵哪个服务器人最多2017,剑灵2017职业排行榜
  18. DPVS适配Mellanox-25G/100G网卡
  19. BERT引发的深度学习2
  20. Springboot基于Java Web的华家医疗器械商城设计与实现 毕业设计-附源码261620

热门文章

  1. 进制转换中dbho是什么意思_什么是网段?二进制十进制如何互相转换?看完这篇,你就全明白了...
  2. axios vue 回调函数_vue中ajax请求与axios包完美处理
  3. C++包扩展_利用 MATLAB Coder 将M代码生成C/C++代码
  4. Python 第三方模块之 pdfkit
  5. 数据分级分类实施指南_运营商行业数据安全治理实践
  6. 如何使用notepad运行python程序
  7. 互联网金融行业申请评分卡(A卡)简介
  8. xcode左侧不显示工程文件目录,提示NO Filter Results
  9. [洛谷P1231] 教辅的组成
  10. 测试人员要了解的知识