主题思想: 直觉应该是到dp问题,不应该是O(n^2)的解法,所以寻找方法进行转化,最后发现如果计算每天的差值,就可以转化为求差值数组的连续最大子数组问题,因此问题得解。
AC 代码:
class Solution {
public int maxProfit(
int[] prices) {
if(prices==
null||prices.length==
0)
return 0;
int [] diff=
new int [prices.length-
1];
for(
int i=
1;i<prices.length;i++){
diff[i-
1]=prices[i]-prices[i-
1];
}
int sum=
0;
int mx=
0;
for(
int i=
0;i<diff.length;i++){
if(
sum<
0){
sum=diff[i];
}
else{
sum+=diff[i];
}
if(
sum>mx)mx=
sum;
}
return mx;
}
}