标签:
/* * 188. Best Time to Buy and Sell Stock IV * 2016-6-6 by Mingyang * 这个题目我的做法是设立以为二维dp,T[i][j]i是transaction的数量,j是天数 * 也就是在j天以内完成i次交易的最大值 * T[i][j]=max 1. T[i][j-1]------>第j天根本不交易 * 2. (prices[j]-prices[m])+T[i-1][m] ------所有的最大值 * for m=0,...j-1---也就是在m天完成i-1次交易,最后一次由m买进,j卖出 */ public int maxProfit(int k, int[] prices) { int len=prices.length; if(prices==null||len==0) return 0; int[][] T=new int[k+1][prices.length]; for(int i=0;i<=k;i++){ T[i][0]=0; } for(int j=0;j<prices.length;j++){ T[0][j]=0; } for(int i=1;i<=k;i++){ for(int j=1;j<prices.length;j++){ int maxVal=0; for(int m=0;m<j;m++){ maxVal=Math.max(maxVal,prices[j]-prices[m]+T[i-1][m]); } T[i][j]=Math.max(T[i][j-1],maxVal); } } return T[k][prices.length-1]; }
188. Best Time to Buy and Sell Stock IV
标签:
原文地址:http://www.cnblogs.com/zmyvszk/p/5566455.html