假設你正在考試,你有 120 分鐘的時間,但你無法解決問題,因為你的時間有限。例如,完成問題所需的分數和時間如下。
在此處輸入影像描述
因此,我們需要使用動態規劃方法設計最有效的演算法來計算您將在可用時間內獲得的最高點。
下面是我的代碼;
static int maxPoints(int points[], int time[],int n) {
if(n<=0) {
return 0;
}
else {
return Math.max(points[n-1] maxPoints(points,time,(n-2)),
time[n - 1] maxPoints(points, time, (n - 1)));
}
}
public static void main(String[] args) {
int n=10;
int points[]= {4,9,5,12,14,6,12,20,7,10};
int time[]= {1,15,2,3,20,120};
System.out.println();
}
但是我找不到正確的演算法,你能幫我解決這個問題嗎?
uj5u.com熱心網友回復:
在您的問題中,每個問題都有一個權重(它需要的時間量)和一個值(它獎勵的分數)。總時間(或重量)受到限制,您需要最大化積分(或價值)。
這類似于0-1 背包問題,可以使用動態規劃輕松解決。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/478424.html
