309. Der beste Zeitpunkt für den Kauf und Verkauf von Aktien ist eine Einfrierphase (mittel).

Ideen:

In drei Situationen unterteilt:

i) Beteiligung (dp [1])

ii) Keine Aktien halten, nicht in der Einfrierphase (dp [0])

iii) In einer Einfrierphase keine Aktien halten (dp [2])

 

Code:

class Solution {
    public int maxProfit(int[] prices) {
		int n=prices.length;
		if(n<2) return 0;
		int[][] dp=new int[n][3];
		
		//初始化
		//0:不持股,不在冰冻期
		//1:持股
		//2:不持股,在冰冻期
		dp[0][0]=0;
		dp[0][1]=-prices[0];
		dp[0][2]=0;
		
		//股票卖掉后进入冰冻期
		for(int i=1;i<n;i++){
			//不在冰冻期:前一个不在冰冻期/前一个就在冰冻期,现在这个变为不冰冻期
			dp[i][0]=Math.max(dp[i-1][0],dp[i-1][2]);
			//持股:前一个就持股/前一个不持股并且不在冰冻期,现在买入了股票
			dp[i][1]=Math.max(dp[i-1][1],dp[i-1][0]-prices[i]);
			//不持股在冰冻期:前一个持股卖掉了。不可能前一个还是冰冻期,冰冻期只有1天
			dp[i][2]=dp[i-1][1]+prices[i];
			
		}
		//比较不持股:在冰冻期/不在冰冻期,哪一个更多钱。不比较还持股的
		return Math.max(dp[n-1][0],dp[n-1][2]);
	}
}

 

abbauen:

1) Hier ist dp die erste Form und der aktuelle Wert bezieht sich nur auf das vorherige Ergebnis

Intervallplanung

Die Menge dp zweidimensionales Array, dp [i] [j] repräsentiert die Gewinnsituation im Intervall [0, i] und der Zustand ist j

j hat 3 Situationen:

    i) Schritt (1)

    ii) Keine Aktien halten, nicht in der Einfrierphase (0)

    iii) In einer Einfrierphase keine Aktien halten (2)

 

2) Es ist ein Punkt zu beachten: Nach dem Verkauf der Aktie muss eine eintägige Einfrierfrist eingehalten werden

//不在冰冻期:前一个不在冰冻期/前一个就在冰冻期,现在这个变为不冰冻期
dp[i][0]=Math.max(dp[i-1][0],dp[i-1][2]);
//持股:前一个就持股/前一个不持股并且不在冰冻期,现在买入了股票
dp[i][1]=Math.max(dp[i-1][1],dp[i-1][0]-prices[i]);
//不持股在冰冻期:前一个持股卖掉了。不可能前一个还是冰冻期,冰冻期只有1天
dp[i][2]=dp[i-1][1]+prices[i];

 

3) Vergleichen Sie abschließend den endgültigen Gewinnwert der beiden Situationen:

    i) Keine Aktien halten + nicht in der Einfrierphase

    ii) In der Einfrierphase keine Aktien + halten

Vergleichen Sie nicht die Situation, in der noch Aktien gehalten werden, da noch Aktien in der Hand sind. Dies kann nicht das Maximum sein

Ich denke du magst

Origin blog.csdn.net/di_ko/article/details/115276711
Empfohlen
Rangfolge