算法题:买卖股票的最佳时机(只能有一次买卖,可以最多两次买卖,不限次数)
LeetCode——Best Time to Buy and Sell Stock III
package src.main.java; public class test { //买卖一次 public int maxProfit(int[] prices) { if(prices==null || prices.length==0) return 0; int local = 0; int global = 0; for(int i=0;i<prices.length-1;i++) { //计算两天股票的差。 int diff = prices[i+1]-prices[i]; // 计算局部最大涨幅。在local+diff与0中取最大值其目的是:出现大跌,即local+diff为负, // 此时如果直接赋值给local会出现local为负的情况,股票再涨的时候local+diff计算的就不是计算涨幅了。 local = Math.max(local+diff,0); //记录股票全局最大涨幅 global = Math.max(local, global); } return global; } //不限次数 public int maxProfit_II(int[] prices) { if (prices == null || prices.l