题解 | #买卖股票的最好时机(一)#
买卖股票的最好时机(一)
https://www.nowcoder.com/practice/64b4262d4e6d4f6181cd45446a5821ec
import java.util.*;
public class Solution {
/**
*
* @param prices int整型一维数组
* @return int整型
*/
public int maxProfit (int[] prices) {
// write code here
// 这个题目,要用贪心算法来解决
if(prices.length <= 1){
return 0;
}
int profit = 0;
// 表示买入价格,要找到最便宜的时候买入
int minPrice = Integer.MAX_VALUE;
for(int i = 0; i< prices.length; i++){
// 找到最低价格
minPrice = Math.min(minPrice,prices[i]);
// 收益,要么是之前的,要么是现在的价格减去最低买入价格
profit = Math.max(prices[i] - minPrice , profit);
}
return profit;
}
}
minPrice是买入的最低价,一开始把它设置为最大值,然后不断缩小它。初始化profit为0,然后它等于当天价格减去最低买入价格,比较这个计算值和之前的profi,选最大的留下。这是贪心算法的典型题目。
查看1道真题和解析
