タイトル説明
\ ii要素が\ ii日の株価である配列があるとします。
あなたは売買するチャンスがあります。(株を購入した後にのみ販売することができます)。得られる最大の利益を計算するためのアルゴリズムを設計してください。
例1
入る
[1,4,2]
戻り値
3
例2
入る
[2,4,1]
戻り値
2
アイデア:動的計画法:dp [i]を使用してi日の販売の利益を表し、次にdp [i] = max(price [i] -min、maxProfit) コードの実装:
import java.util.*;
public class Solution {
/**
*
* @param prices int整型一维数组
* @return int整型
*/
public int maxProfit (int[] prices) {
if (prices == null || prices.length == 0) {
return 0;
}
int maxProfit = 0, min = Integer.MAX_VALUE;
for (int i = 0; i < prices.length; i++) {
if (prices[i] < min) {
min = prices[i];
}
maxProfit = Math.max(prices[i] - min, maxProfit);
}
return maxProfit;
}
}