Loading [MathJax]/jax/output/CommonHTML/jax.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LeetCode 2200. 找出数组中的所有 K 近邻下标

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

作者头像
Michael阿明
发布于 2022-11-27 09:04:00
发布于 2022-11-27 09:04:00
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

文章目录

1. 题目

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
示例 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. 解题

  • 模拟,一次遍历,时间复杂度
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
LeetCode 2089. 找出数组排序后的目标下标
将 nums 按 非递减 顺序排序后,返回由 nums 中目标下标组成的列表。 如果不存在目标下标,返回一个 空 列表。 返回的列表必须按 递增 顺序排列。
Michael阿明
2022/01/07
4120
LeetCode 第 17 场双周赛(469/897,前52.3%)
题目链接 给你一个以行程长度编码压缩的整数列表 nums 。 考虑每相邻两个元素 [a, b] = [nums[2*i], nums[2*i+1]] (其中 i >= 0 ),每一对都表示解压后有 a 个值为 b 的元素。
Michael阿明
2020/07/13
3940
LeetCode 第 17 场双周赛(469/897,前52.3%)
LeetCode 5985. 根据给定数字划分数组
给你一个下标从 0 开始的整数数组 nums 和一个整数 pivot 。 请你将 nums 重新排列,使得以下条件均成立:
Michael阿明
2022/03/10
4740
LeetCode 2100. 适合种地的日子(计数)
你和一群强盗准备种地。给你一个下标从 0 开始的整数数组 security ,其中 security[i] 是第 i 天 天气热的数量。日子从 0 开始编号。同时给你一个整数 time 。
Michael阿明
2022/01/07
2500
LeetCode 2099. 找到和最大的长度为 K 的子序列
给你一个整数数组 nums 和一个整数 k 。 你需要找到 nums 中长度为 k 的 子序列 ,且这个子序列的 和最大 。
Michael阿明
2022/01/07
1.3K0
LeetCode 1814. 统计一个数组中好对子的数目(哈希)
给你一个数组 nums ,数组中只包含非负整数。 定义 rev(x) 的值为将整数 x 各个数字位反转得到的结果。 比方说 rev(123) = 321 , rev(120) = 21 。我们称满足下面条件的下标对 (i, j) 是 好的 :
Michael阿明
2021/09/06
2950
LeetCode 2092. 找出知晓秘密的所有专家(并查集)
给你一个整数 n ,表示有 n 个专家从 0 到 n - 1 编号。 另外给你一个下标从 0 开始的二维整数数组 meetings ,其中 meetings[i] = [xi, yi, timei] 表示专家 xi 和专家 yi 在时间 timei 要开一场会。 一个专家可以同时参加 多场会议 。最后,给你一个整数 firstPerson 。
Michael阿明
2022/01/07
4080
程序员进阶之算法练习(八十四)
题目链接 题目大意: 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):
落影
2023/09/03
1690
LeetCode 1743. 从相邻元素对还原数组(拓扑排序)
存在一个由 n 个不同元素组成的整数数组 nums ,但你已经记不清具体内容。 好在你还记得 nums 中的每一对相邻元素。
Michael阿明
2021/02/19
5120
LeetCode 1852. 每个子数组的数字种类数(滑窗)
给你一个整数数组 nums与一个整数 k,请你构造一个长度 n-k+1 的数组 ans,这个数组第i个元素 ans[i] 是每个长度为k的子数组 nums[i:i+k-1] = [nums[i], nums[i+1], ..., nums[i+k-1]]中数字的种类数。
Michael阿明
2021/09/06
5440
LeetCode 2012. 数组美丽值求和
给你一个下标从 0 开始的整数数组 nums 。对于每个下标 i(1 <= i <= nums.length - 2),nums[i] 的 美丽值 等于:
Michael阿明
2022/01/07
5810
程序员面试金典 - 面试题 17.19. 消失的两个数字(数学/位运算)
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/missing-two-lcci 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Michael阿明
2020/07/13
9310
LeetCode 1. 两数之和(哈希)
题目链接:https://leetcode-cn.com/problems/two-sum/
Michael阿明
2021/02/20
1840
LeetCode 1. 两数之和(哈希)
LeetCode 78. 子集(回溯)
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/subsets 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Michael阿明
2021/02/20
1970
LeetCode 78. 子集(回溯)
LeetCode 1855. 下标对中的最大距离(双指针)
给你两个 非递增 的整数数组 nums1​​​​​​ 和 nums2​​​​​​ ,数组下标均 从 0 开始 计数。
Michael阿明
2021/09/06
4870
LeetCode 1707. 与数组中元素的最大异或值(Trie树)
给你一个由非负整数组成的数组 nums 。另有一个查询数组 queries ,其中 queries[i] = [xi, mi] 。
Michael阿明
2021/09/06
4260
LeetCode 第 24 场双周赛(326/1898,前17.2%)
做出来了 1、2、3 题,32分钟做出来3题,感觉有点蒙过来。第4题实在没思路,继续加油!
Michael阿明
2020/07/13
3470
LeetCode 2094. 找出 3 位偶数
给你一个整数数组 digits ,其中每个元素是一个数字(0 - 9)。数组中可能存在重复元素。
Michael阿明
2022/01/07
2750
LeetCode 90. 子集 II(回溯+剪枝)
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/subsets-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Michael阿明
2021/02/20
3310
LeetCode 90. 子集 II(回溯+剪枝)
LeetCode 6024. 数组中紧跟 key 之后出现最频繁的数字
给你一个下标从 0 开始的整数数组 nums ,同时给你一个整数 key ,它在 nums 出现过。
Michael阿明
2022/03/10
5170
推荐阅读
相关推荐
LeetCode 2089. 找出数组排序后的目标下标
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验