532 陣列中的K diff對

2022-09-02 11:03:09 字數 804 閱讀 1785

例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 儘管陣列中有...