线性扫描,记录到当前位置之前的最小值,枚举每个当前位置为可能的出售日期,取最大值即可。
class Solution {
public:
int maxDiff(vector<int>& nums) {
int len = nums.size();
if(len == 0)return 0;
int minv = nums[0];
int ans = 0;
for(int i = 0; i < len; i ++){
minv = min(minv, nums[i]);
ans = max(ans ,nums[i] - minv);
}
return ans;
}
};