最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

160. 56. 57. | 區(qū)間合并類型 LeetCode

2020-05-11 11:44 作者:有木乘舟  | 我要投稿

?

?分析:

  • 暴力解法,分別遍歷兩個(gè)鏈表,判斷a鏈表是否有結(jié)點(diǎn)存在于b鏈表中。

  • 哈希表解法,遍歷a鏈表,將a鏈表的結(jié)點(diǎn)用哈希表存儲,再遍歷b鏈表,判斷b鏈表中是否有結(jié)點(diǎn)存在于哈希表中。

  • 雙指針法:

    • 該方法核心思路在于消除兩個(gè)鏈表的長度差異,由題目可得知,鏈表的相交部分是相同的,存在差異的只有前面不重疊的那部分,而兩個(gè)鏈表的長度是可能不同的。如果我們能夠把長鏈表多出來的那部分差異給消除,就能夠通過遍歷來得到相交的部分。

    • 設(shè)置兩個(gè)指針,分別指向a,b兩個(gè)鏈表;a,b兩個(gè)指針同時(shí)遍歷鏈表;當(dāng)其中某個(gè)指針遍歷到結(jié)尾的時(shí)候,將其指向另一個(gè)鏈表的起始位置;新的a,b指針繼續(xù)遍歷鏈表,直到另一個(gè)指針也遍歷到結(jié)尾并指向另一個(gè)鏈表的起始位置;此時(shí),a,b指針同時(shí)開始重新遍歷鏈表,當(dāng)a,b指針相同的時(shí)候,得到相交的結(jié)點(diǎn)。

    ? 理解了雙指針方法的核心思路后,我們可以對代碼進(jìn)行優(yōu)化,只需要在一次遍歷中,同時(shí)判斷雙指針是否到達(dá)了結(jié)尾,或者是相同。


分析:

??具體分析看官方已經(jīng)講解的十分詳細(xì),簡單來講就是連續(xù)區(qū)間在排序后一定互相臨近,因此對可合并的連續(xù)區(qū)間,只需要求出其上界和下屆即可。

    https://leetcode-cn.com/problems/merge-intervals/solution/he-bing-qu-jian-by-leetcode-solution/

    分析:

    ? 題目提供的是已經(jīng)排好序的區(qū)間列表,因此我們只需要將新的區(qū)間和列表中的區(qū)間進(jìn)行比較,然后合并插入即可。


    ? 我們只需要考慮三種情況:

    1. 新區(qū)間不與當(dāng)前區(qū)間重疊,則將當(dāng)前區(qū)間添加到輸出列表中;若新區(qū)間還未添加到輸出列表中,則將新區(qū)間添加到輸出列表中。

      1. 新區(qū)間左邊界大于當(dāng)前區(qū)間的右邊界

      2. 新區(qū)間的右邊界小于當(dāng)前區(qū)間的左邊界

    2. 新區(qū)間與當(dāng)前區(qū)間重疊,則合并兩個(gè)區(qū)間,并將合并后的區(qū)間當(dāng)做新區(qū)間,進(jìn)行下一步判斷。

    3. 若新區(qū)間不與當(dāng)前區(qū)間重疊,且循環(huán)已經(jīng)結(jié)束,則將新區(qū)間添加到輸出列表的最后面。

圖解:

代碼:


160. 56. 57. | 區(qū)間合并類型 LeetCode的評論 (共 條)

分享到微博請遵守國家法律
泽库县| 巫溪县| 宁远县| 乌苏市| 大石桥市| 宣汉县| 内黄县| 农安县| 淳安县| 石台县| 澎湖县| 岑巩县| 太仓市| 台山市| 中超| 东阿县| 柞水县| 十堰市| 北宁市| 宜川县| 迁安市| 长泰县| 新乐市| 邵阳市| 榆中县| 九龙城区| 梧州市| 沅陵县| 石林| 区。| 双城市| 汉川市| 枣阳市| 桓台县| 象山县| 尤溪县| 鹰潭市| 衡阳市| 花垣县| 额尔古纳市| 松潘县|