注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

HT·生活

123

 
 
 

日志

 
 

ex122 Best Time to Buy and Sell Stock II  

2015-05-14 21:05:45|  分类: leetcode |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
这一题和ex121最大的不同就是可以买多次,但是必须卖出了才能进行下一次交易。

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 as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).

首先一看,貌似比上一个难一些,不过仔细一分析就发现,超级简单,就是价格每次上升的时候都卖,真是服了这个出题人了。见c代码

/*
* 严格来说这题可比exe121简单多了,表示看到收益是正的就买
*/
int maxProfit2(int* prices, int pricesSize)
{
int i, j;
int ps, pe;
int max = INT_MIN; //初始化最小值

int sum = 0;
int profit = 0;
if (pricesSize <= 1)
return 0;
for (i = 0; i < pricesSize - 1; i++)
{
prices[i] = prices[i + 1] - prices[i];
if (prices[i] > 0)
{
profit += prices[i];
}
}

if (profit < 0)
{
profit = 0;
}
return profit;
}


  评论这张
 
阅读(6)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018