方法1:java
贪心算法,从左往右遍历向量,遇到当前最小值,则保存,
如果不是最小值,则计算它到最小值的距离,保存为最大利润
import java.util.*;
public class Solution {
/**
*
* @param prices int整型一维数组
* @return int整型
*/
public int maxProfit (int[] prices) {
// write code here
int flag=-1;
int min=prices[0]; //最小值赋为第一天
int max=0;
for (int i=1; i<prices.length; i++){
if (prices[i]<min){
min=prices[i]; //更新最小值
}else{
max=Math.max(max,prices[i]-min);
}
}
return max;
}
}
方法2:python
class Solution:
def maxProfit(self , prices ):
# write code here
minS=prices[0]
maxS=0
for i in range(1,len(prices)):
if prices[i]<minS:
minS=prices[i]
else:
maxS=max(maxS,prices[i]-minS)
return maxS