五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

349. 350. | 區(qū)間合并題型 LeetCode

2020-05-15 10:53 作者:有木乘舟  | 我要投稿


分析:

? 題目只需要輸出有交集的區(qū)間中的元素,且不重復(fù)。我們可以用哈希表來存儲nums2,然后遍歷nums1判斷是否有元素存在于哈希表中,若是的話就是交集元素。

? 不過,仔細(xì)觀察代碼可以發(fā)現(xiàn),對于nums2中重復(fù)的元素,我們只需要存儲一次即可,也就是說哈希表中的每個元素都是不同的。這時候我們可以直接用set容器來替代map,并且set容器可以直接刪除交集元素,而無需額外的判斷。??

分析:

? 這題與349一樣,用哈希表來解題就可以了。

分析:

? 比較常規(guī)的判斷區(qū)間是否重疊的問題,我們?nèi)匀豢梢韵仍O(shè)置一個新的合并集合,將合并后的,或者不需要合并的區(qū)間放進(jìn)去,然后返回這個集合的大小。

? 核心思路還是:集合排序后,可以合并的區(qū)間一定互相靠近且連續(xù)。并且,題目只要求當(dāng)某一個集合完全包含在另一個集合當(dāng)中時,才需要刪除,部分重疊則不需要刪除。

? 因此,我們可以將其歸納為以下幾個步驟:

  • 對當(dāng)前區(qū)間,若其不與其他區(qū)間重疊,則放入新集合

  • 若當(dāng)前區(qū)間與新區(qū)間重合,則判斷:

    • 當(dāng)前區(qū)間是否包含在新區(qū)間內(nèi) [1, 2] -> [1,4],若是,則用新區(qū)間替換當(dāng)前區(qū)間

    • 當(dāng)前區(qū)間是否包含了新區(qū)間 [2,8] -> [3,6],若是,則不做任何操作,繼續(xù)循環(huán)

  • 否則,將新區(qū)間放入新集合,繼續(xù)循環(huán)

? 進(jìn)一步的,我們發(fā)現(xiàn) [1,2]->[1,4] 和 [2,8]->[3,6] 只是因為前后位置不同,所以導(dǎo)致了我們需外額外判斷這兩種情況。那如果,我們能把大的區(qū)間放到前面去,小的區(qū)間放到后面去,是不是就只需要判斷一次就可以了呢?

? 這種方法就是利用STL的特性,在排序的時候就把上面的那種情況考慮進(jìn)去,使得排序后的集合,大的區(qū)間永遠(yuǎn)在小的區(qū)間前面。這樣的話,我們只需要判斷當(dāng)前區(qū)間是否包含新區(qū)間即可。

349. 350. | 區(qū)間合并題型 LeetCode的評論 (共 條)

分享到微博請遵守國家法律
汨罗市| 犍为县| 福州市| 东兰县| 休宁县| 兴业县| 邹平县| 东台市| 冷水江市| 兰溪市| 竹山县| 新巴尔虎右旗| 偃师市| 西丰县| 宜川县| 泸溪县| 昂仁县| 公安县| 抚宁县| 乐陵市| 东丰县| 郯城县| 华坪县| 周宁县| 瑞安市| 海城市| 郁南县| 乐安县| 慈溪市| 东至县| 黎城县| 广昌县| 二连浩特市| 满洲里市| 霍林郭勒市| 施甸县| 虎林市| 区。| 繁昌县| 天水市| 永寿县|