staticclassSolution{publicintmaxProfit(int[] prices){//贪心或者动态//这里是动态//数组长度int len = prices.length;//没有输入则看作没有交易发生,返回0if(len==0)return0;//差值最大值int max =0;int[] tmp =newint[len];
tmp[0]=0;for(int i =1;i<len;i++){//如果当前利润大于0,则加上i-(i-1)的两个差的值if(tmp[i-1]>0) tmp[i]= prices[i]-prices[i-1]+tmp[i-1];elseif(tmp[i-1]<=0) tmp[i]= prices[i]-prices[i-1];if(max<tmp[i]) max = tmp[i];}return max;}}
方案2:贪心算法
classSolution{publicintmaxProfit(int[] prices){//贪心或者动态//这里是贪心//数组长度int len = prices.length;//没有输入则看作没有交易发生,返回0if(len==0)return0;//差值最大值int max =0;int tmp =0;for(int i =1;i<len;i++){//如果当前利润大于0,则加上i-(i-1)的两个差的值if(tmp>0) tmp = prices[i]-prices[i-1]+tmp;elseif(tmp<=0) tmp = prices[i]-prices[i-1];if(max<tmp) max = tmp;}return max;}}