博主最近在力扣上做算法题,一天一道,可以跟着我来练习,有啥不会的可以留言,或者不理解力扣上面哪道可以进行留言。有啥不会的题也可以留言,仅限于简单与中等难度的。
愿我们变的越来越好
有啥不明白的评论区留言!!
[121. 买卖股票的最佳时机]
[TOC]
# 思路
> 在看到这个题的时候想到的是暴力解法,双for循环进行计算,最后发现超时,在看解题思路之后,看到了此方法
# 解题方法
> 要明白,priMin首先要取最大值,因为最大值才能保证接下来的都比它小,运用for循环进行一次for循环,在遇见比priMin小的时候,进行替换,其他的时候进行计算,与priMax大的时候进行替换。
此处有不理解的可以问
# 复杂度
- 时间复杂度:
> 添加时间复杂度, 示例: $O(n)$
- 空间复杂度:
> 添加空间复杂度, 示例: $O(n)$
# Code
```Java []
public class Solution {
public int maxProfit(int[] prices) {
int priMin = Integer.MAX_VALUE;
int priMax = 0;
for (int i = 0;i<prices.length;i++){
if (prices[i]<priMin)
priMin = prices[i];
else if (priMax < prices[i] - priMin)
priMax = prices[i] - priMin;
}
return priMax;
}
}
```