由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - Best Time to Buy and Sell Stock 出三了。。。
相关主题
关于leetcode上那个买卖股票II的问题Leetcode 上面的 Best Time to Buy and Sell Stock III
Best Time to Buy and Sell Stock III怎么能证明或者保证两个区间没有相交?做了一下 Google 的 Best Time to Buy and Sell Stock II
Best Time to Buy and Sell Stock II这么简单?问一个java的函数调用问题
leetcode里Best Time to Buy and Sell Stock III怎么做?我也遇到leetcode上Run Time Error,但在自己的机子能通过
有个很简单的程序但是有segmentation fault是问啥请教一个DP解法
请问为什么这个程序会出现RunTime Errorleetcode triganle 通不过。。。
[solved]stock这题目我 自己调试没问题,为什么leetcode总过不去问个 matrix 的问题 (CS)
等了两个月,终于等到G的拒信。(更新面筋)求思路
相关话题的讨论汇总
话题: max话题: int话题: prices话题: rightmax话题: min
进入JobHunting版参与讨论
1 (共1页)
i****y
发帖数: 58
1
Say you have an array for which the ith element is the price of a given
stock on day i.
Design an algorithm to find the maximum profit. You may complete at most two
transactions.
Note:
You may not engage in multiple transactions at the same time (ie, you must
sell the stock before you buy again).
大家有没有思路啊。。。
d******i
发帖数: 76
2
可不可以循环两次,每次都找到最大的max profit,
第一次循环结束后,删除这两个数,然后在循环找到另一对
不知道这样可行否
i****y
发帖数: 58
3
这样找出来的两对很有可能重叠,感觉是不是要用dp做了。。。

【在 d******i 的大作中提到】
: 可不可以循环两次,每次都找到最大的max profit,
: 第一次循环结束后,删除这两个数,然后在循环找到另一对
: 不知道这样可行否

s*****n
发帖数: 162
4
第一轮,从左到右算,到第i天截至,做一次交易的最大收益。
第二轮,从右到左算,从第j天开始到最后一天,做一次交易的最大收益。同时算做两
次交易的最大收益:加上第一轮已经知道的,到第j天截至,做一次交易的最大收益。O
(n) time
c****9
发帖数: 164
5
这个牛逼,顺着思路写了下:
int maxProfit(vector &prices) {
vector left(prices.size(),0);
vector right = left;
int max= 0 ;
int min = INT_MAX;
for(int i=0;i {
if(prices[i] {
min = prices[i];
}
if(prices[i]-min>max)
{
max = prices[i]-min;
}
left[i]= max;
}
max = 0;
int rightmax = INT_MIN;
for(int i=prices.size()-1;i>=0;i--)
{
if(prices[i]>rightmax)
{
rightmax = prices[i];
}
if(rightmax-prices[i]>max)
{
max = rightmax-prices[i];
}
right[i] = max;
}
max =0;
for(int i=0;i {
if(left[i]+right[i]>max)
{
max = left[i]+right[i];
}
}
return max;
}

。O

【在 s*****n 的大作中提到】
: 第一轮,从左到右算,到第i天截至,做一次交易的最大收益。
: 第二轮,从右到左算,从第j天开始到最后一天,做一次交易的最大收益。同时算做两
: 次交易的最大收益:加上第一轮已经知道的,到第j天截至,做一次交易的最大收益。O
: (n) time

f*******w
发帖数: 1243
6

。O
还是你牛!

【在 s*****n 的大作中提到】
: 第一轮,从左到右算,到第i天截至,做一次交易的最大收益。
: 第二轮,从右到左算,从第j天开始到最后一天,做一次交易的最大收益。同时算做两
: 次交易的最大收益:加上第一轮已经知道的,到第j天截至,做一次交易的最大收益。O
: (n) time

w****x
发帖数: 2483
7

。O
要死啦,刚准备想想怎么做就一不小心看到你把答案揭晓了.

【在 s*****n 的大作中提到】
: 第一轮,从左到右算,到第i天截至,做一次交易的最大收益。
: 第二轮,从右到左算,从第j天开始到最后一天,做一次交易的最大收益。同时算做两
: 次交易的最大收益:加上第一轮已经知道的,到第j天截至,做一次交易的最大收益。O
: (n) time

c********t
发帖数: 5706
8
可以试试再简化些。

【在 c****9 的大作中提到】
: 这个牛逼,顺着思路写了下:
: int maxProfit(vector &prices) {
: vector left(prices.size(),0);
: vector right = left;
: int max= 0 ;
: int min = INT_MAX;
: for(int i=0;i: {
: if(prices[i]: {

1 (共1页)
进入JobHunting版参与讨论
相关主题
求思路有个很简单的程序但是有segmentation fault是问啥
buy and sell stock II with 手续费请问为什么这个程序会出现RunTime Error
Buy / Sell stock 的老题[solved]stock这题目我 自己调试没问题,为什么leetcode总过不去
Best time to buy and sell stock II等了两个月,终于等到G的拒信。(更新面筋)
关于leetcode上那个买卖股票II的问题Leetcode 上面的 Best Time to Buy and Sell Stock III
Best Time to Buy and Sell Stock III怎么能证明或者保证两个区间没有相交?做了一下 Google 的 Best Time to Buy and Sell Stock II
Best Time to Buy and Sell Stock II这么简单?问一个java的函数调用问题
leetcode里Best Time to Buy and Sell Stock III怎么做?我也遇到leetcode上Run Time Error,但在自己的机子能通过
相关话题的讨论汇总
话题: max话题: int话题: prices话题: rightmax话题: min