24 陣列中的K diff數對

2021-09-23 22:10:51 字數 781 閱讀 5479

輸入: [3, 1, 4, 1, 5], k = 2

輸出: 2

解釋: 陣列中有兩個 2-diff 數對, (1, 3) 和 (3, 5)。

儘管陣列中有兩個1,但我們只應返回不同的數對的數量。

①遍歷陣列,將陣列元素存入hashmap中,key為陣列元素,value為陣列元素出現的次數;

②遍歷hashmap中的元素,根據k值分情況討論:

(1)如果k值為0,則k-diff對為相同元素,查詢hashmap中的value大於1的key的個數即為k-diff對的個數;

(2)如果k值大於0,則k-diff對為不同元素,查詢當前key+k是否存在hashmap中,存在即為k-diff對。

public int findpairs2(int nums, int k) else

}int count = 0;

//遍歷map

for ( integer key:map.keyset())

//注意這裡的map.get(key+k)!= null,key+k不存在時,get操作返回null

會返回空指標異常

//如果k值大於0,則k-diff對為不同元素,查詢當前key+k是否存在hashmap中

if ((k>0)&&map.get(key+k)!= null&&(map.get(key+k)>=1))

}     return count;

}

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

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...

149 陣列中的K diff數對

題目描述 給定乙個整數陣列和乙個整數 k,你需要在陣列裡找到不同的 k diff 數對。這裡將 k diff 數對定義為乙個整數對 i,j 其中 i 和 j 都是陣列中的數字,且兩數之差的絕對值是 k.示例 1 輸入 3,1,4,1,5 k 2 輸出 2 解釋 陣列中有兩個 2 diff 數對,1,...