摘要:由于無法處理相同的操作,所依對于的時候,我采用了進(jìn)行操作。為時,對于每一次遍歷,找到這個值是否已經(jīng)存在在里,同時獲取這個值出現(xiàn)過的次數(shù)。
題目詳情
Given an array of integers and an integer k, you need to find the number of unique k-diff pairs in the array. Here a k-diff pair is defined as an integer pair (i, j), where i and j are both numbers in the array and their absolute difference is k.想法這道題的意思是,輸入一個整數(shù)數(shù)組和一個整數(shù)k,我們需要找出數(shù)組中絕對值差正好為k的不重復(fù)的整數(shù)對兒
Example 1:
Input: [3, 1, 4, 1, 5], k = 2
Output: 2
這個例子中有兩個不同的整數(shù)對, (1, 3)和(3, 5).Example 2:
Input:[1, 2, 3, 4, 5], k = 1
Output: 4
這個例子里有四個不同的整數(shù)對(1, 2), (2, 3), (3, 4)和(4, 5).Example 3:
Input: [1, 3, 1, 5, 4], k = 0
Output: 1
這個例子里有一個符合要求的整數(shù)對(1,1)
這道題我分兩種情況進(jìn)行的討論,一種是k不為0的時候,我通過新建一個hashset來完成計算。
由于hashset無法處理相同key的操作,所依對于k==0的時候,我采用了hashmap進(jìn)行操作。
k為0時,對于每一次遍歷,找到這個值是否已經(jīng)存在在hashmap里,同時獲取這個值出現(xiàn)過的次數(shù)(value)。如果次數(shù)為1,那么我們獲得了一個符合要求的整數(shù)對,如果次數(shù)大于1,那么說明這個整數(shù)對已經(jīng)被統(tǒng)計過了,可以忽略。如果這個鍵值未曾出現(xiàn)在hashmap里,那么我們將其存入hashmap,將value賦值為1.
當(dāng)k不為0時,我們遍歷每一個元素,如果這個元素和當(dāng)前set中的元素不重復(fù)的話,我們將這個元素存入set,然后判斷在set中是否有滿足和這個元素的絕對值相差為k的整數(shù)出現(xiàn),如果有,構(gòu)成一個整數(shù)對。
解法int res = 0; if(k < 0)return 0; if(k == 0){ HashMapcountZero = new HashMap (); for(int i=0;i count = new HashSet (); for(int num : nums){ if(!count.add(num)){continue;} if(count.contains(num+k)){ res ++; } if(count.contains(num-k)){ res ++; } } } return res;
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/68382.html
Problem Given an array of integers and an integer k, you need to find the number of unique k-diff pairs in the array. Here a k-diff pair is defined as an integer pair (i, j), where i and j are both nu...
摘要:前言從開始寫相關(guān)的博客到現(xiàn)在也蠻多篇了。而且當(dāng)時也沒有按順序?qū)懍F(xiàn)在翻起來覺得蠻亂的??赡艽蠹铱粗卜浅2环奖?。所以在這里做個索引嘻嘻。順序整理更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新 前言 從開始寫leetcode相關(guān)的博客到現(xiàn)在也蠻多篇了。而且當(dāng)時也沒有按順序?qū)憽F(xiàn)在翻起來覺得蠻亂的??赡艽蠹铱粗卜浅2环奖?。所以在這里做個索引嘻嘻。 順序整理 1~50 1...
摘要:在線網(wǎng)站地址我的微信公眾號完整題目列表從年月日起,每天更新一題,順序從易到難,目前已更新個題。這是項目地址歡迎一起交流學(xué)習(xí)。 這篇文章記錄我練習(xí)的 LeetCode 題目,語言 JavaScript。 在線網(wǎng)站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公眾號: showImg(htt...
摘要:如果為空的情況下,也為空返回,不為空返回為空,返回數(shù)組第一個元素返回包含數(shù)組前個元素的數(shù)組返回數(shù)組中除了最后一個元素外的其他全部元素。 // Array Functions // --------------- // Get the first element of an array. Passing **n** will return the first N ...
摘要:給定長度為的數(shù)組你的任務(wù)是將這些數(shù)分成對例如,使得從到的總和最大。提示是正整數(shù)范圍在數(shù)組中的元素范圍在解題思路其實就是把數(shù)組排序,然后按順序每兩個數(shù)既是一對,每對的第一個數(shù)累加之和即為所求。就是考一下各類排序算法的性能。 文章全部來自公眾號:愛寫bug 算法是一個程序的靈魂。Given an array of 2n integers, your task is to group the...
閱讀 1216·2019-08-30 15:55
閱讀 964·2019-08-30 15:55
閱讀 2163·2019-08-30 15:44
閱讀 2895·2019-08-29 14:17
閱讀 1140·2019-08-29 12:45
閱讀 3316·2019-08-26 10:48
閱讀 3142·2019-08-23 18:18
閱讀 2613·2019-08-23 16:47