貪心 1697 演算法學習

2022-08-11 08:18:11 字數 1181 閱讀 5104

2020-03-24 23:06:02

問題描述:

現在,你有n個任務需要做。每個任務都有對應的獎勵val,這意味著你只要完成了這個任務,就能獲得對應的獎勵。每個任務也有乙個完成期限date,你只有在期限內(<=date[i])完成了這個任務,才能獲得獎勵。每個任務只能被完成一次,一天最多只能做乙個任務。請你合理的分配任務,以獲得最多的獎勵。

樣例

樣例 1:

輸入:[50,60,70],[3,1,1]

輸出:120

解釋:對於第1個任務,你能在第1天,第2天,第3天中選擇1天去完成。

對於第2個任務,你只能選擇第1天去完成。

對於第3個任務,你只能選擇第1天去完成。

所以,我們選擇第1天完成任務3,第2天完成任務1,50+70=120。任務2無法完成。

樣例 2:

輸入:[1,5,9],[1,1,1]

輸出:9

解釋:對於第1個任務,你只能選擇第1天去完成。

對於第2個任務,你只能選擇第1天去完成。

對於第3個任務,你只能選擇第1天去完成。

所以,我們選擇第1天完成任務3。任務1和2無法完成。

注意事項

0 <= n <= 10000

1 <= val[i] <= 10000

1 <= date[i] <= 10000

問題求解:

int res = 0;

public int algorithmlearning(int val, int date) );

collections.sort(record, (int o1, int o2) -> integer.compare(o1[0], o2[0]));

priorityqueuepq = new priorityqueue<>();

for (int i = 0; i < n; i++)

else

}return res;

}

貪心演算法學習

基本概念 所謂貪心演算法是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的僅是在某種意義上的區域性最優解。貪心演算法沒有固定的演算法框架,演算法設計的關鍵是貪心策略的選擇。必須注意的是,貪心演算法不是對所有問題都能得到整體最優解,選擇的貪心策略必須具備...

演算法學習 貪心法

只選擇乙個子問題 1.快2.不能保證獲得最優解,可以作為近似解,一般,在特殊情況下可保證最優解。3.適合於組合優化問題 貪心選擇策略 分解方案 s s0,c c0 部分解s,候選集c while complete s 解擴充套件 c c c中引數重新計算以及候選集調整 注意 實現時dist 的初始值...

演算法學習之路 貪心

基本概念 貪心演算法 又稱貪婪演算法 是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,即某個狀態以前的過程不會影響以後的狀...