121.买卖股票的最佳时机(代码片段)

zzxisgod zzxisgod     2022-12-07     353

关键词:

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。

注意:你不能在买入股票前卖出股票。

 

示例 1:

输入: [7,1,5,3,6,4]
输出: 5
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
     注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。

示例 2:

输入: [7,6,4,3,1]
输出: 0
解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。

 

思路:

只能允许完成一笔交易,所以就不需要把交易额正数的都加起来,找个最大的就行了

定义个max记录一下最大的,往后找,减一减看看有没有比这个交易额还要大一点的,有就更新。

记录前面的最小价格,将这个最小价格作为买入价格,然后将当前的价格作为售出价格,查看当前收益是不是最大收益。

class Solution 
    public int maxProfit(int[] prices) 
        int n = prices.length;
        if (n == 0) return 0;
        int soFarMin = prices[0];
        int max = 0;
        for (int i = 1; i < n; i++) 
            if (soFarMin > prices[i]) soFarMin = prices[i];
            else max = Math.max(max, prices[i] - soFarMin);
        
        return max;
    

c_cpp121.买卖股票的最佳时机(代码片段)

查看详情

121.买卖股票的最佳时机(代码片段)

121.买卖股票的最佳时机给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大... 查看详情

121.买卖股票的最佳时机(代码片段)

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票... 查看详情

121.买卖股票的最佳时机(代码片段)

给定一个数组,它的第 i个元素是一支给定股票第i天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例1:输入:[7,1,5,3,6... 查看详情

[javascript刷题]dp-买卖股票的最佳时机,leetcode121(代码片段)

[JavaScript刷题]DP-买卖股票的最佳时机,leetcode121githubrepo地址:https://github.com/GoldenaArcher/js_leetcode,Github的目录大概会更新的更勤快一些。题目地址:121.BestTimetoBuyandSellStock题目如下:Youaregivenanarrayprice 查看详情

121.买卖股票的最佳时机(代码片段)

121.买卖股票的最佳时机思路dp是个二维数组,表示第i天持有和不持有的最高收益。数组初始化,对于第一天就入股的资产为-price[0],不买的为0;后面递推公式,对于持有和不持有的分别两种情况;持有的递推&#... 查看详情

121.买卖股票的最佳时机(代码片段)

121.买卖股票的最佳时机思路dp是个二维数组,表示第i天持有和不持有的最高收益。数组初始化,对于第一天就入股的资产为-price[0],不买的为0;后面递推公式,对于持有和不持有的分别两种情况;持有的递推&#... 查看详情

121.买卖股票的最佳时机(代码片段)

1classSolution23public:4intmaxProfit(vector<int>&prices)56if(prices.empty())return0;7intn=prices.size();8intbuy=prices[0];9intres=0;10for(inti=1;i<n;i++)1112res=max(res,prices[i]-buy);13if(buy>prices[i])buy=prices[i];1415returnres;1617;  查看详情

代码随想录算法训练营第四十九天|121买卖股票的最佳时机122买卖股票的最佳时机ii(代码片段)

代码随想录算法训练营第四十九天|121买卖股票的最佳时机122买卖股票的最佳时机IILeetCode121买卖股票的最佳时机题目:121.买卖股票的最佳时机动规五部曲:确定dp数组以及下标的含义**dp[i][0]表示第i天持有股票所得最多现金**确... 查看详情

leetcode121买卖股票的最佳时机(代码片段)

目录 题目给定一个数组prices,它的第 i个元素 prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。返回... 查看详情

「每日一练,快乐水题」121.买卖股票的最佳时机(代码片段)

...码:🔵结果展示:🔴力扣原题:121.买卖股票的最佳时机🟠题目简述:给定一个数组prices,它的第i个元素 查看详情

leetcode刷题100天—121.买卖股票的最佳时机(数组+双指针)—day24(代码片段)

...#xff1a;作者:神的孩子在歌唱大家好,我叫运智121.买卖股票的最佳时机难度简单1812收藏分享切换为英文接收动态反馈给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这... 查看详情

leetcode刷题100天—121.买卖股票的最佳时机(数组+双指针)—day24(代码片段)

...#xff1a;作者:神的孩子在歌唱大家好,我叫运智121.买卖股票的最佳时机难度简单1812收藏分享切换为英文接收动态反馈给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这... 查看详情

121.买卖股票的最佳时机

classSolution:defmaxProfit(self,prices:List[int])->int:minprice=prices[0]maxprofit=0foriinprices:minprice=min(minprice,i)maxprofit=max(maxprofit,i-minprice)returnmaxprofit 查看详情

[javascript刷题]dp-买卖股票的最佳时机,leetcode121

[JavaScript刷题]DP-买卖股票的最佳时机,leetcode121githubrepo地址:https://github.com/GoldenaArcher/js_leetcode,Github的目录大概会更新的更勤快一些。题目地址:121.BestTimetoBuyandSellStock题目如下:Youaregivenanarrayprice 查看详情

数组121.买卖股票的最佳时机(代码片段)

...卖股票,那么我们能赚多少钱呢?显然,如果我们真的在买卖股票,我们肯定会想:如果我是在历史最低点买的股票就好了!太好了,在题目中,我们只要用一个变量记录一个历史最低价格minprice,我们就可以假设自己的股票是... 查看详情

121.买卖股票的最佳时机(代码片段)

    思路:1、将prices升序排列;2、用price遍历排序后的prices,取price在原list中的下标i;3、在原list中截取下标i之后的元素,取其中最大值max(temp[i:]);4、计算当前利润:max(temp[i:])-price,存入ans[]中;5、返回ans中的最... 查看详情

121besttimetobuyandsellstock买卖股票的最佳时机

假设你有一个数组,其中第i个元素是一支给定股票第i天的价格。如果您只能完成最多一笔交易(即买入和卖出一股股票),则设计一个算法来找到最大的利润。示例1:输入:[7,1,5,3,6,4]输出:5最大利润=6-1=5(不是7-1=6,因为卖出价格... 查看详情