給定乙個整數陣列和乙個整數 k,判斷陣列中是否存在兩個不同的索引 i 和 j,使得 nums [i] = nums [j],並且 i 和 j 的差的絕對值最大為 k。
示例 1:
輸入: nums = [1,2,3,1], k = 3
輸出: true
示例 2:
輸入: nums = [1,0,1,1], k = 1
輸出: true
示例 3:
輸入: nums = [1,2,3,1,2,3], k = 2
輸出: false
查詢與滑動視窗結合方法
class solution {
public:
bool containsnearbyduplicate(vector& nums, int k) {
if(nums.size()<2)
return false;
unordered_setrecord;
for(int i=0;i{
//查詢當前nums[i]是否在大小為小於或者等於k的set中
if(record.find(nums[i])!=record.end())
return true;
record.insert(nums[i]);
//向量大小大於k+1時,保持set的大小最大為k,故刪除set中存於序列最小的元素nums[i-k]
if(record.size()==k+1)
{record.e
219 存在重複元素 II
219.存在重複元素 ii 給定乙個整數陣列和乙個整數 k,判斷陣列中是否存在兩個不同的索引i 和j,使得nums i nums j 並且 i 和 j 的差的絕對值最大為 k。示例 1 輸入 nums 1,2,3,1 k 3 輸出 true 示例 2 輸入 nums 1,0,1,1 k 1 輸出 t...
219 存在重複元素 II
鏈結 給定乙個整數陣列和乙個整數 k,判斷陣列中是否存在兩個不同的索引 i 和 j,使得 nums i nums j 並且 i 和 j 的差的絕對值最大為 k。示例1 輸入 nums 1,2,3,1 k 3 輸出 true示例2 輸入 nums 1,0,1,1 k 1 輸出 true示例3 輸入 n...
219 存在重複元素 II
給定乙個整數陣列和乙個整數 k,判斷陣列中是否存在兩個不同的索引 i 和 j,使得 nums i nums j 並且 i 和 j 的差的 絕對值 至多為 k。示例 1 示例 2 示例 3 遍歷陣列,對於每個元素做以下操作 1.在雜湊表中搜尋當前元素,如果找到了就返回 true。2.在雜湊表中插入當前...