问题就是一个数组,代表每天的股票价格,买了再卖找到最大的利润值
public int maximumDifference(int[] nums) { if (nums.length==0||nums==null)return -1; int res=-1;int premin=nums[0]; for (int i = 0; i < nums.length; i++) { if(nums[i]>premin){ res=Math.max(nums[i]-premin,res); } else{ premin=nums[i]; } } return res; }
整个问题等价于寻找 x 个不相交的区间,使得利益最大
需要说明的是,贪心算法只能用于计算最大利润,计算的过程并不是实际的交易过程。
public int maxProfit(int[] prices) { int ans = 0; int n = prices.length; for (int i = 1; i < n; ++i) { ans += Math.max(0, prices[i] - prices[i - 1]); } return ans; }
过后补充