提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
一、题目
1.题目描述
2.思路与代码
2.1 思路
2.2 代码
总结
前言
提示:这里可以添加本文要记录的大概内容:
1月22日练习内容
提示:以下是本篇文章正文内容,下面案例可供参考
1.题目描述
给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。
在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有 一股股票。你也可以先购买,然后在同一天出售。
返回你能获得的最大利润 。
示例 1:
输入:prices = [7,1,5,3,6,4]
输出:7
解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3 。
总利润为 4 + 3 = 7 。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2.思路与代码
2.1 思路
1.判断输入的数组是否为空,为空则直接返回0
2。创建两个变量max和res,max用来记录最大利润,res则用来记录相邻数组差即如果第二天卖掉股票,收益是否为正
3.遍历数组,计算相邻数组差,当差值为正时,max加等于res;
4.输出最大利润
2.2 代码
代码如下(示例):
class Solution {
public int maxProfit(int[] prices) {
//判断输入的数组长度是否为空
if(prices.length == 0)
return 0;
//两个变量,一个记录最大的利润,一个记录利润的差
int max = 0;
int res = 0;
//遍历数组
for(int i = 1;i < prices.length;i ++){
//计算相邻值的利润差
res = prices[i] - prices[i -1];
//如果相邻利润差大于0,则表示可以卖出
if(res > 0)
max += res;
}
//输出
return max;
}
}
总结
提示:这里对文章进行总结: