2020-03-24 23:06:02
問題描述:
現在,你有n
個任務需要做。每個任務都有對應的獎勵val
,這意味著你只要完成了這個任務,就能獲得對應的獎勵。每個任務也有乙個完成期限date
,你只有在期限內(<=date[i])完成了這個任務,才能獲得獎勵。每個任務只能被完成一次,一天最多只能做乙個任務。請你合理的分配任務,以獲得最多的獎勵。
樣例
樣例 1:
樣例 2:輸入:[50,60,70],[3,1,1]
輸出:120
解釋:對於第1個任務,你能在第1天,第2天,第3天中選擇1天去完成。
對於第2個任務,你只能選擇第1天去完成。
對於第3個任務,你只能選擇第1天去完成。
所以,我們選擇第1天完成任務3,第2天完成任務1,50+70=120。任務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 的初始值...
演算法學習之路 貪心
基本概念 貪心演算法 又稱貪婪演算法 是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,即某個狀態以前的過程不會影響以後的狀...