关键词:
给定一个数组,它的第 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,因为卖出价格... 查看详情