預(yù)計(jì)閱讀時(shí)間:3 分鐘上篇文章 貪心算法之區(qū)間調(diào)度問題 用貪心算法解決了區(qū)間調(diào)度問題:給你很多區(qū)間,讓你求其中的最大不重疊子集。 其實(shí)對(duì)于區(qū)間相關(guān)的問題,還有很多其他類型,本文就來講講區(qū)間合并問題(Merge Interval)。LeetCode 第 56 題就是一道相關(guān)問題,題目很好理解: 我們解決區(qū)間問題的一般思路是先排序,然后觀察規(guī)律。 一、思路一個(gè)區(qū)間可以表示為 顯然,對(duì)于幾個(gè)相交區(qū)間合并后的結(jié)果區(qū)間 由于已經(jīng)排了序, int max_ele = arr[0]; 二、代碼看下動(dòng)畫就一目了然了: 至此,區(qū)間合并問題就解決了。本文篇幅短小,因?yàn)閰^(qū)間合并只是區(qū)間問題的一個(gè)類型,后續(xù)還有一些區(qū)間問題。本想把所有問題類型都總結(jié)在一篇文章,但有讀者反應(yīng),長(zhǎng)文只會(huì)收藏不會(huì)看… 所以還是分成小短文吧,歡迎留言寫下你的看法。 |
|