JAVA练习28-买卖股票的最佳时机‖

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

 

前言

一、题目

1.题目描述

2.思路与代码

2.1 思路

2.2 代码

总结


前言

提示:这里可以添加本文要记录的大概内容:

1月22日练习内容


提示:以下是本篇文章正文内容,下面案例可供参考

一、题目-买卖股票的最佳时机 II

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;
    }
}

 


总结

提示:这里对文章进行总结:
 

 

你可能感兴趣的:(java练习,java)