题目:买卖股票,只能一次买入一次卖出,求解最大的收益。
代码:
class Solution {
public int maxProfit(int[] prices) {
if(des(prices)){
return 0;
}
int[] dp=new int[prices.length];
dp[0]=0;
int bestx=0;
int cw;
for (int i=0;i<=prices.length-2;i++){
for (int j=i+1;j<prices.length;j++){
cw=prices[j]-prices[i];
if (cw>dp[i]){
dp[i]=cw;
}
}
if(dp[i]>bestx){
bestx=dp[i];
}
}
return bestx;
}
//判断函数是否为降序
public boolean des(int[] nums){
for (int i=0;i<nums.length-1;i++){
if (nums[i+1]>nums[i]){
return false;//不是降序
}
}
return true;
}
}
结果:
呵呵,结果也太差劲了吧。算了,先做出来再说其他的。