觉得自己做得到和做不到,其实只在一念之间
作者简介:
👨🎓一位20级的计科专业的新手,请各位大佬多多指教
🏡个人主页:XiaoChen_Android
📚学习专栏:力扣专栏
🕒发布日期:2022/8/9
『LeetCode|每日一题』 股票的最大利润
1.每日一题
2.解题思路
2.1 思路分析
一次遍历数组,定义一个min和max分别代表最低成本和最大收益
S1:把min初始化为Integer.MAX_VALUE,max则等于0;
S2:遍历数组,从第一天开始和min比较,得出最小购入的那一天
S3:要分两种情况:当第i天的购入价格比第i-1天要小,那么min应等于prices[i],否则,就可以算收益max应为max和prices[i] - min中较大的那个;
S4:算出的max即为最大利润;
2.2 核心代码
for(int i = 0;i < n;i++){
if(prices[i] < min){
min = prices[i];
}else {
max = Math.max(prices[i] - min , max);
}
}
2.3 全部代码
class Solution {
public int maxProfit(int[] prices) {
int n = prices.length;
if(n <= 1) return 0;
int min = Integer.MAX_VALUE;
int max = 0;
for(int i = 0;i < n;i++){
if(prices[i] < min){
min = prices[i];
}else {
max = Math.max(prices[i] - min , max);
}
}
return max;
}
}
🍁 类似题目推荐:
如果文章对你有帮助就支持一下噢,新手尝试,不好的地方请各位大佬多多指教!