貪心演算法題解心得

2021-09-13 02:11:43 字數 546 閱讀 4519

通過vj上的題目,發現很多題目都是類似的,有的題目也可以用之前的思路來考慮(暴力求解的思路),但是這樣的話只能過樣例,會超時,這也就是為什麼使用貪心的原因吧,要考慮分步求解,求最優解。

覺得做貪心問題最重要的還是想解決問題的方法,一般知道如何解決問題就做對了一半,然而這解決問題的方法有的時候並不太好想,之前接觸過的還容易想,容易有思路,但是有的問題就沒有思路,沒有想法,這樣就真的很難進行下去了。。。

另外貪心使用的時候一般要使用排序(陣列、結構體等),我們也可以使用函式或者優先佇列等來進行排序。

另外輸入輸出時有時需要測試多組資料,這時我們可以搭配while來進行多次讀取資料並搭配佇列或者陣列或者向量等進行資料結果的暫時儲存。while(~scanf(「%d」,&a))與while(scanf(「%d」,&a)!=eof)作用效果相同,都是一直讀入資料。

最讓人頭疼的並不是超時,因為超時的情況並不會太多,超時就代表整個思路都錯了,相當於走路繞遠了,該換一條近路去走。最讓我覺得頭疼的是wa,是測試資料都能過並且自己嘗試找的資料也能過但是還是wa的情況,看**的思路真的是看不出**有錯誤,但是就是不能過啊。。。

leetcode題解 貪心演算法

貪心演算法 又稱貪婪演算法 是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。通常貪心演算法的 會非常短而且思路也非常的簡單,但貪心演算法真正的難點在於確定我們當前的問題確實可以使用貪心演算法。這是一道簡單的貪心演算法問題...

LeetCode貪心演算法題解

leetcode 860.檸檬水找零 題幹 在檸檬水攤上,每一杯檸檬水的售價為 5 美元。顧客排隊購買你的產品,按賬單 bills 支付的順序 一次購買一杯。每位顧客只買一杯檸檬水,然後向你付 5 美元 10 美元或 20 美元。你必須給每個顧客正確找零,也就是說淨交易是每位顧客向你支付 5 美元。...

經典貪心演算法 貪心演算法概述

貪心演算法具有最優子問題結構,它的特點是 短視 每次選擇對當前局面最有利的決策,來一步步獲得最優解。我個人認為,貪心不是乙個具體的方法,而是一類方法,貪心演算法的關鍵不在於想到,而在於正確性的證明。要證明乙個貪心演算法是正確的,需要證明我們可以把乙個最優解逐步轉化為我們用貪心演算法所得到的解,而解不...