首页 > 其他分享 >122.买卖股票的最佳时机(多次买卖)

122.买卖股票的最佳时机(多次买卖)

时间:2024-06-24 14:27:16浏览次数:33  
标签:买卖 int profit 122 最佳时机 prices 股票价格 前一天 利润

给你一个整数数组 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 。

即使最后不是4是8,也可以选择6入8出,和3入8出的总利润是一样的。

思路:遍历数组,有两种情况。第一种比前一天的价格高,那么可以前一天买入今天卖出,利润累加。第二种比前一天低,那就什么都不做。

public int maxProfit(int[] prices) {
        int profit = 0;
        for (int i = 1; i < prices.length; i++) {
            if (prices[i] < prices[i-1]){
                
            }else {
                profit = profit + (prices[i] - prices[i-1]);
            }
        }
        return profit;
    }

标签:买卖,int,profit,122,最佳时机,prices,股票价格,前一天,利润
From: https://blog.csdn.net/2302_79400545/article/details/139924365

相关文章

  • C语言 | Leetcode C语言题解之第188题买卖股票的最佳时机IV
    题目:题解:intmaxProfit(intk,int*prices,intpricesSize){intn=pricesSize;if(n==0){return0;}k=fmin(k,n/2);intbuy[k+1],sell[k+1];memset(buy,0,sizeof(buy));memset(sell,0,sizeof(sell));......
  • [题解]CF1223F Stack Exterminable Arrays
    CCF出的原题观摩一下。思路首先可以用一个Trie来维护。在这里对本文中的一些变量做一下说明。\(p\)表示当前维护的Trie中,指向的元素编号。\(t_i\)表示在Trie中编号为\(i\)的元素在原序列中的值。\(f_i\)表示在Trie中编号为\(i\)的元素在Trie中的父节点。......
  • 代码随想录算法训练营第46天 | 121. 买卖股票的最佳时机 、122.买卖股票的最佳时机II
    股票问题是一个动态规划的系列问题,前两题并不难,第三题有难度。买卖股票的最佳时机视频讲解:https://www.bilibili.com/video/BV1Xe4y1u77qhttps://programmercarl.com/0121.买卖股票的最佳时机.html/***@param{number[]}prices*@return{number}*/varmaxProfit=......
  • Day 30 | 122.买卖股票的最佳时机II、55. 跳跃游戏 、45.跳跃游戏II、 1005.K次取反后
    122.买卖股票的最佳时机II本题解法很巧妙,本题大家可以先自己思考一下然后再看题解,会有惊喜!https://programmercarl.com/0122.买卖股票的最佳时机II.html给定一个数组,它的第i个元素是一支给定股票第i天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成......
  • 力扣-714. 买卖股票的最佳时机含手续费
    1.题目介绍题目地址(714.买卖股票的最佳时机含手续费-力扣(LeetCode))https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/题目描述给定一个整数数组 prices,其中prices[i]表示第 i 天的股票价格;整数 fee代表了交易股票的手续费用。......
  • 力扣-122. 买卖股票的最佳时机 II
    1.题目题目地址(122.买卖股票的最佳时机II-力扣(LeetCode))https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/题目描述给你一个整数数组prices,其中 prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最......
  • 力扣-121. 买卖股票的最佳时机
    1.题目题目地址(121.买卖股票的最佳时机-力扣(LeetCode))https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/题目描述给定一个数组prices,它的第 i个元素 prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个......
  • 122. 买卖股票的最佳时机 II
    买卖股票的最佳时机II已解答中等相关标签相关企业给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有一股股票。你也可以先购买,然后在同一天出售。返回你能获得的最大利......
  • 洛谷 P1122 最大子树和
    题目链接:最大子树和思路    由于可以无限剪枝,所以假设以节点1为根,并删去所有美丽质数小于0的子树,又考虑到可能会出现根节点为负数,导致可能会只留下子树而把节点1为根节点的其他部分扔掉,所以需要dp数组记录,dp[i]为以节点i为根节点能得到的最大的美丽指数,贪心将节点i的子......
  • 洛谷 P1226 快速幂
    题目链接:快速幂思路    简单快速幂模板。a^17=(a^2)^8*a,此时pow()中的y就可以视为17->8(y>>=1),pow()中的x就是底数a->a^2(x*=x),结果res可以视为在循环时多出来的后边乘的a,1->a(res*=x),简单代数推导就会发现y=1的时候,会有res*=x此时的x为a^16,则......