例1: 輸入: [3,1,4,1,5],k = 2 輸出: 2
說明:陣列中有兩個2-diff對,(1,3)和(3,5)。 雖然我們在輸入中有兩個1,但我們應該只返回唯一對的數量。
例2: 輸入: [1,2,3,4,5],k = 1 輸出: 4
說明:陣列中有四個1-diff對,(1,2),(2,3),(3,4)和(4,5)。
例3: 輸入: [1,3,1,5,4],k = 0 輸出: 1 說明:陣列中有乙個0-diff對,(1,1)。
注意: 對(i,j)和(j,i)計為同一對。 陣列的長度不會超過10,000。 給定輸入中的所有整數都屬於以下範圍:[ - 1e7,1e7]。
解題思路:使用hashset將陣列中有重複的元素放在乙個hashset中,若陣列為空或者陣列元素長度小於2或k
<0,對數為0,若k==0時,則k-diff對數是此陣列重複元素的hashset集合的大小。若k>0是將陣列元素放入兩個hashset中。通過迭代器遍歷元素,判斷set1中是否有元素值值跟迭代器當前遍歷出的元素值-k相等,有則對數加一。
public
int findpairs(int nums, int
k) else
}if (k==0)
return
repeat.size();
int m=0;
iterator iterator=set1.iterator();
while
(iterator.hasnext())
return
m; }
532 陣列中的K diff數對
532.陣列中的k diff數對 給定乙個整數陣列和乙個整數k,你需要在陣列裡找到不同的k diff 數對。這裡將k diff數對定義為乙個整數對 i,j 其中i和j都是陣列中的數字,且兩數之差的絕對值是k.示例 1 輸入 3,1,4,1,5 k 2輸出 2解釋 陣列中有兩個 2 diff 數對,1...
532 陣列中的K diff數對
給定乙個整數陣列和乙個整數 k,你需要在陣列裡找到不同的 k diff 數對。這裡將 k diff 數對定義為乙個整數對 i,j 其中 i 和 j 都是陣列中的數字,且兩數之差的絕對值是 k.示例 1 輸入 3,1,4,1,5 k 2 輸出 2 解釋 陣列中有兩個 2 diff 數對,1,3 和 3...
LeetCode532 陣列中的K diff數對
給定乙個整數陣列和乙個整數k,你需要在陣列裡找到不同的k diff 數對。這裡將k diff數對定義為乙個整數對 i,j 其中i和j都是陣列中的數字,且兩數之差的絕對值是k.示例 1 輸入 3,1,4,1,5 k 2 輸出 2 解釋 陣列中有兩個 2 diff 數對,1,3 和 3,5 儘管陣列中有...