給你乙個整數陣列 nums 和乙個整數 k ,判斷陣列中是否存在兩個 不同的索引 i 和 j ,滿足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否則,返回 false 。
/*
解題方案
思路標籤:雜湊
維護乙個雜湊表,裡面始終最多包含 k 個元素,當出現重複值時則說明在 k 距離內存在重複元素
每次遍歷乙個元素則將其加入雜湊表中,如果雜湊表的大小大於 k,則移除最前面的數字
時間複雜度:o(n)o(n),nn 為陣列長度
*/class solution
set.add(nums[i]);
if(set.size() > k)
}return false;
}}
存在重複元素 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...
存在重複元素II
剛開始沒有理解題意,以為存在間距為k的兩個數相等才能返回 後來又認為 沒有超過間距為k 的兩個數才能返回 其實是只要存在兩個相等數,它們倆之間的間距小於等於k就可以返回true 初始 public boolean containsnearbyduplicate int nums,int k else...
存在重複元素 II
問題 給定乙個整數陣列和乙個整數 k,判斷陣列中是否存在兩個不同的索引 i 和 j,使得 nums i nums j 並且 i 和 j 的差的 絕對值 至多為 k。思路 利用雜湊表,首先新建乙個字典,然後通過判斷這個索引在字典內,然後找到這個祥同志的另外乙個索引只有相減是否小於等於k class s...