题目描述: 根据题目描述,该题的意思就是后面一个数减去前面一个数,这些差中,求出最大的差值,即为最大利润; 假设第一个数为最小值,遍历整个数组,当后面的数大于该数时,求出差值,否则重新赋值最小值,最小值是动态的,每次求出差值后也作比较,差值也是动态的; 代码如下:
class Solution {
public:
int maxProfit(vector
<int>& prices
) {
int dif
=0;
if(prices
.size()<2) return 0;
if(prices
.size()>=2){
int min
=prices
[0],i
=1;
while(i
<prices
.size()){
if(min
>prices
[i
])
min
=prices
[i
];
else if(prices
[i
]-min
>dif
)
dif
=prices
[i
]-min
;
i
++;}
}
return dif
;
}
};
转载请注明原文地址: https://mac.8miu.com/read-494833.html