package Level2;
/**
* Best Time to Buy and Sell Stock
*
* Say you have an array for which the ith
* element is the price of a given stock on day i.
*
* If you were only permitted to complete at most one transaction (ie, buy one
* and sell one share of the stock), design an algorithm to find the maximum
* profit.
*/
public class S121 {
public static void main(String[] args) {
}
public int maxProfit(int[] prices) {
// 当没有任何prices信息的情况
if(prices.length == 0){
return 0;
}
int min = prices[0]; // 记录最小买入价的index
int maxProfit = 0; // 记录最大profit
for(int i=1; i<prices.length; i++){
// 更新最小买入价
if(prices[i] < min){
min = prices[i];
}
// 计算当前利润
int currentProfit = prices[i] - min;
// 如果当前利润超过最大利润,更新最大利润
if(currentProfit > maxProfit){
maxProfit = currentProfit;
}
}
return maxProfit;
}
}