219 存在重複元素 II

2021-10-02 23:50:08 字數 783 閱讀 9357

給定乙個整數陣列和乙個整數 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.在雜湊表中插入當前...