日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

貪心算法原理及在Java中的使用

瀏覽:21日期:2022-08-11 15:58:13
目錄貪心算法區(qū)間調(diào)度問題好了,說了這么多,那針對該問題正確的貪心策略到底是哪個?應(yīng)用總結(jié)貪心算法

由于貪心算法本身的特殊性,我們在使用貪心算法之前必須要進行證明,保證算法滿足貪心選擇性質(zhì)。具體的證明方法無外乎就是通過數(shù)學(xué)歸納法來進行證明。但大部分人可能并不喜歡枯燥的公式,因而我這里提供一個使用貪心算法的小技巧。由于貪心算法某種程度上算是動態(tài)規(guī)劃算法的特例,使用條件比較苛刻,因而能夠用動態(tài)規(guī)劃解決的問題盡量都是用動態(tài)規(guī)劃來進行先解決,如果在用完動態(tài)規(guī)劃之后,提交時發(fā)現(xiàn)問題超時,并且進行狀態(tài)壓縮之后仍然超時,此時我們就可以**考慮使用貪心算法來進行解決。**最后強調(diào)一下,我們在使用貪心算法之前,如果要保證解法的絕對正確,一定要對問題進行證明,切記,切記!!

下邊我們以區(qū)間調(diào)度問題為例,來講一下貪心算法到底該如何取用。

區(qū)間調(diào)度問題

問題描述:

給你很多形如 [start, end] 的閉區(qū)間,請你設(shè)計一個算法,算出這些區(qū)間中最多有幾個互不相交的區(qū)間。

舉個例子,intvs = [[1,3], [2,4], [3,6]],這些區(qū)間最多有 2 個區(qū)間互不相交,即 [[1,3], [3,6]],你的算法應(yīng)該返回 2。注意邊界相同并不算相交。

這個問題大眼一看好像有很多貪心策略可供選擇,比如我們可以選擇區(qū)間最短的?或者選擇開始最早的?。。。

但是上面幾種策略,我們都可以比較容易的舉出反例來排除,同時這也是貪心算法的另一個小技巧--雖然好多時候直接證明貪心策略的正確性很難,但是我們可以從反證法入手,對貪心策略進行證偽,排除許多錯誤的貪心策略。😄😄

好了,說了這么多,那針對該問題正確的貪心策略到底是哪個?

其實正確的思路也比較簡單,可以分成下面三步:

從區(qū)間集合中選擇一個區(qū)間 x,這個 x 是所有區(qū)間中結(jié)束最早的(end 最小)。 把所有與 x 區(qū)間相交的區(qū)間從區(qū)間集合中刪除掉。 重復(fù) 1 和 2,直到區(qū)間集合為空。之前選出的那些 x 的集合就是最大的不想交子集。

這個思路實現(xiàn)成算法的話,可以按照每個區(qū)間的 end 數(shù)值進行升序排序,因為這樣處理以后實現(xiàn)步驟 1 和步驟 2 就會容易很多。

我們通過下面這個動圖來輔助理解其整個過程。

貪心算法原理及在Java中的使用

由于我們在計數(shù)之前進行了排序,所以所有與 x 相交的區(qū)間必然會和 x 的 end 相交;如果一個區(qū)間不想與 x 的 end 相交,它的 start 必須要大于或者等于 x 的 end。

具體實現(xiàn)的代碼如下:

public int eraseOverlapIntervals(int[][] intervals) { if (intervals.length == 0) { return 0; } Arrays.sort(intervals,new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { return o1[1] - o2[1]; }});//排序后的第一個必然可用 int count = 1; int x_end = intervals[0][1]; for (int[] interval : intervals) { if (interval[0] >= x_end) {count++;x_end = interval[1]; } } return count; }應(yīng)用

如果學(xué)會了上面的區(qū)間調(diào)度問題的話,leetCode 上邊有兩個題目,我們便都可以拿下了。

貪心算法原理及在Java中的使用

這個問題大眼一看好像和我們之前講的那個區(qū)間調(diào)度問題毫不相關(guān),但仔細分析一下,好像是一模一樣的問題,如果最多有 n 個不重疊的區(qū)間,那么就至少需要 n 個箭頭穿透所有區(qū)間。

貪心算法原理及在Java中的使用

因而問題也就轉(zhuǎn)化成了,尋找不重疊區(qū)間的個數(shù),但我們要注意的一點是,在 intervalSchedule 算法中,如果兩個區(qū)間的邊界觸碰,不算重疊;而按照這道題目的描述,箭頭如果碰到氣球的邊界氣球也會爆炸,所以說相當(dāng)于區(qū)間的邊界觸碰也算重疊。

貪心算法原理及在Java中的使用

代碼實現(xiàn)如下:

public int findMinArrowShots(int[][] points) { if (points.length <= 0) { return 0; } // 在排序的過程中要考慮溢出情況的發(fā)生 Arrays.sort(points, (a, b) -> Integer.compare(a[1], b[1])); int count = 1; int x_end = points[0][1]; for (int[] point : points) { if (point[0] > x_end) {count++;x_end = point[1]; } } return count; }總結(jié)

本文主要結(jié)合一個例子,講了貪心算法的使用方式。

貪心算法實現(xiàn)起來容易,但難在證明。因而文中提供了兩個小竅門輔助判斷是否使用貪心算法:

在使用考慮貪心算法之前,先考慮使用動態(tài)規(guī)劃(考慮狀態(tài)壓縮)解決該問題,如果問題依然超時,則考慮使用貪心算法。 在確定貪心策略之前,先用一些特殊的例子驗證貪心策略的正確性。對于正確的貪心策略,為了保證算法的絕對正確,要通過數(shù)學(xué)歸納法進行驗證。

以上就是貪心算法原理及在Java中的使用的詳細內(nèi)容,更多關(guān)于Java 貪心算法的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久久久婷| 国产欧美丝祙| 国产欧美另类| 日韩激情精品| 一级成人国产| 奶水喷射视频一区| 久久视频精品| sm捆绑调教国产免费网站在线观看| 日欧美一区二区| 午夜电影一区| 国产图片一区| 麻豆91精品视频| 成人影视亚洲图片在线| 国产福利一区二区精品秒拍| 国产日韩1区| 国产精品亚洲人成在99www| 国产精品亚洲成在人线| 久久97视频| 色天使综合视频| 日韩不卡免费高清视频| 在线亚洲精品| 丝袜美腿一区二区三区| 午夜在线视频观看日韩17c| 亚洲人成网站在线在线观看| 中文字幕免费精品| 国产精品毛片aⅴ一区二区三区| 麻豆精品一区二区综合av| 日韩毛片视频| 亚洲一区欧美激情| 欧美一级久久| 高清久久一区| 国产偷自视频区视频一区二区| 美女精品一区| 国产精品久久久免费| 日韩电影二区| 亚洲免费毛片| 欧美a一区二区| 九色porny丨国产首页在线| 亚洲尤物在线| 国产91欧美| 在线国产一区| 久久久久观看| 蜜桃视频一区二区三区在线观看| 国产精久久一区二区| 国产亚洲网站| 久久男人av资源站| 亚洲91网站| 激情五月综合| 精品精品99| 免费观看久久久4p| 国产韩日影视精品| 欧美午夜三级| 国产美女一区| 高潮一区二区| 国产精品草草| 日欧美一区二区| 亚洲精品国产偷自在线观看| 久久精品五月| 免费在线欧美黄色| 美女视频免费精品| 国产亚洲高清在线观看| 欧美日韩中出| 麻豆国产一区| 宅男噜噜噜66国产日韩在线观看| 日韩一区三区| 四虎884aa成人精品最新| 国产一区二区三区不卡视频网站 | 国产精品亚洲成在人线| 丝袜美腿一区二区三区| 视频一区中文字幕| 日韩午夜视频在线| 欧美一区激情| 最近高清中文在线字幕在线观看1| 麻豆传媒一区二区三区| 国产伦精品一区二区三区视频| 国产精品一国产精品k频道56| 亚洲黄色免费看| 免费久久99精品国产| 精品日产乱码久久久久久仙踪林| 久久精品国产亚洲夜色av网站 | 国产欧美丝祙| 国产69精品久久| 在线精品小视频| 青青草国产精品亚洲专区无| 国产欧美高清视频在线| 国产精品一国产精品| 久久国产婷婷国产香蕉| 日韩欧美2区| 99香蕉国产精品偷在线观看 | 午夜国产精品视频免费体验区| 欧美一级精品| 欧美日韩国产在线观看网站| 99久久99视频只有精品| 99久久精品国产亚洲精品| 久久激情婷婷| 亚洲丝袜美腿一区| 欧美日韩四区| 午夜宅男久久久| 亚洲一区二区三区在线免费| 免费在线观看一区二区三区| 蜜臀av免费一区二区三区| av最新在线| 免费精品国产的网站免费观看| 亚洲少妇在线| 国产欧美三级| 久久九九精品| 午夜久久av| 97精品视频在线看| 99国产精品| 日本aⅴ免费视频一区二区三区| 国产精品mv在线观看| 日韩精品影视| 国产精品日本| 国产精品99久久免费观看| 欧美激情久久久久久久久久久| 日韩免费av| 午夜久久美女| 精品一区二区三区中文字幕在线| 欧美亚洲精品在线| 国产一卡不卡| 韩国久久久久久| 亚洲精品无播放器在线播放| 国产精品探花在线观看| 五月综合激情| 国产精品丝袜在线播放| 在线综合欧美| 精品三级在线| 亚洲v天堂v手机在线| 18国产精品| 亚洲尤物在线| 天堂√中文最新版在线| 亚洲视频国产精品| 国产综合欧美| 成人在线丰满少妇av| 国产免费av一区二区三区| 免费黄网站欧美| 欧洲av不卡| 97国产成人高清在线观看| 国产精品igao视频网网址不卡日韩 | 国产精品一区二区精品| 蜜桃视频在线观看一区二区| 久久一区二区三区电影| 精品一区电影| 精品视频在线你懂得| 国产精品久久| 欧美日韩国产一区二区三区不卡 | 久久一二三区| 国产精品91一区二区三区| 成年男女免费视频网站不卡| 国产精品一区二区三区美女 | 久久香蕉精品| 亚洲免费成人| 蜜臀精品久久久久久蜜臀| 午夜欧美精品| 亚洲欧洲一区| 99riav国产精品| 久久国产精品成人免费观看的软件| 日韩a一区二区| 国产一区日韩欧美| 亚洲黄页一区| 亚洲精品进入| 国产激情一区| 91视频久久| 欧美二三四区| 美女精品在线| 国产欧美一区二区三区国产幕精品| 国产日韩视频在线| 欧美另类中文字幕| 国产精品magnet| 午夜av不卡| 亚洲欧美日本视频在线观看| 在线一区二区三区视频| 日韩在线成人| 成人午夜亚洲| 午夜欧美精品| 国产日韩一区| 亚洲韩日在线| 日本aⅴ亚洲精品中文乱码| 日本成人中文字幕| 成人午夜在线| 丝袜脚交一区二区| 亚洲一区区二区| 国产精品xvideos88| 99久久亚洲精品| 欧美日一区二区三区在线观看国产免| 国产精品毛片一区二区在线看| 99成人在线视频| 久久精品99久久久| 日韩和的一区二在线| 日本成人在线视频网站| 亚洲欧美综合| 国产成人久久| 欧美一区二区三区免费看| 久久蜜桃精品| 青青伊人久久| 久久中文欧美| 日韩精品a在线观看91| 国产91一区| 日韩综合一区| 国产精久久久|