题解 | #买卖股票的最好时机(一)#
买卖股票的最好时机(一)
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,选最大的留下。这是贪心算法的典型题目。