题目
- 买卖股票的最佳时机
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
题解
原本我的打算暴力解开的,先固定一个值,遍历后面的数,如果大于最大的利润就返回
后面时间超时了,使用了只遍历一遍,找出最小值,还有当前利润,如果当前价格-最小值>利润的话,赋值给当前利润。
代码
public int maxProfit(int[] prices) {
int min = Integer.MAX_VALUE;;
int price = 0;
for(int i =0;i<prices.length;i++){
if(prices[i]<min){
min = prices[i];
}
if(prices[i]-min>price){
price = prices[i]-min;
}
}
return price;
}