Leetcode 存在重複元素 (219,220)

2022-03-30 17:39:35 字數 1017 閱讀 4272

219. 存在重複元素 ii

給定乙個整數陣列和乙個整數 k,判斷陣列中是否存在兩個不同的索引i 和j,使得 nums [i] = nums [j],並且 i 和 j 的差的絕對值最大為 k。

// 實現原理:這裡面要求的一點是,其距離問題,也就是最大為k,name也就是說只要在距離的k的範圍內,找到重複元素

// 即返回true,同樣的範圍已經大於k值的時候,這時候就要更新序列的起始位置。使用雙指標策略進行。

public boolean containsnearbyduplicate(int nums, int k) 

}return false;

}

220. 存在重複元素 iii

給定乙個整數陣列,判斷陣列中是否有兩個不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的絕對值最大為 t,並且 i 和 j 之間的差的絕對值最大為 ķ。

/** 借助treeset的subset函式,看看是否有在對應區間內的資料

*同時維護乙個長度為k的視窗,超過這個視窗,就將其最前面的元素將其拿掉。

* */

public boolean containsnearbyalmostduplicate(int nums, int k, int t) 

treesetresult=new treeset<>();

for(int i=0;iset=result.subset((long)nums[i]-t,true, (long)nums[i]+t,true);

if(!set.isempty())

else if(i>=k)

result.add((long)nums[i]);

}return false;

}

暴力求解:

public boolean containsnearbyalmostduplicate2(int nums, int k, int t) 

int i=0;

while(i

LeetCode 存在重複元素

給定乙個整數陣列,判斷是否存在重複元素。如果任何值在陣列中出現至少兩次,函式返回 true。如果陣列中每個元素都不相同,則返回 false。示例 1 輸入 1,2,3,1 輸出 true示例 2 輸入 1,2,3,4 輸出 false示例 3 輸入 1,1,1,3,3,4,3,2,4,2 輸出 tr...

leetcode 存在重複元素

題目 給定乙個整數陣列,判斷是否存在重複元素。如果任意一值在陣列 現至少兩次,函式返回true 如果陣列中每個元素都不相同,則返回false 示例1 輸入 1,2,3,1 輸出 true 示例2 輸入 1,2,3,4 輸出 false 示例3 輸入 1,1,1,3,3,4,3,2,4,2 輸出 tr...

LeetCode 219 存在重複元素2

問題描述 給定乙個整數陣列和乙個整數 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...