LeetCode是什么,leetcodetop

  LeetCode是什么,leetcodetop

  假设你有一个数组,数组的元素是给定股票在第一天的价格。

  如果你只被允许完成最多一笔交易(即买一股卖一股),设计一个算法找出最大利润。

  例如:array[]={ 2,5,3,8,9,4 },maxProfit=9 - 2=7 .

  Anwser 1:

  类别解决方案{

  公共:

  int maxProfit(矢量(同Internationalorganizations)国际组织价格){

  //开始在下面键入您的C/C解决方案

  //不要写int main()函数

  if(prices.size()==0)返回0;

  int ret=0;

  int len=价格size();

  int max price=prices[len-1];

  for(int I=len-1;我我- ){

  maxPrice=max(prices[i],max price);//maxPrice

  ret=max(ret,max price-prices[I]);//maxProfit

  返回浸水使柔软

  };

  注意点:

  最大利润,应该是先买的最低价与后卖的最高价的差值,因此需要考虑时间先后顺序

  Anwser 2:

  类别解决方案{

  公共:

  int maxProfit(矢量(同Internationalorganizations)国际组织价格){

  //开始在下面键入您的C/C解决方案

  //不要写int main()函数

  int maxp=0;

  int DP=0;

  for(int I=价格。size()-2;I=0;我-)

  如果(dp=0){

  dp=(价格[i 1]价格【我】);

  }否则{

  dp=max(0,prices[I 1]-prices[I]);

  maxp=max(dp,maxp);

  返回最大斑块面积

  };

  说明:

  1) 此法把两数之间最大差,转化为了求两数组之间最大和

  2) dp=(价格[i 1]价格[我])实际上是dp=(价格[i 1]价格我)(价格[我]价格[i-1])(价格[i-1]价格[i-2]).=(价格[我]价格[j]) (i j)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: