Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1006597
  • 博文数量: 150
  • 博客积分: 3017
  • 博客等级: 少校
  • 技术积分: 3829
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-19 14:40
个人简介

Now in Baidu WISE team

文章分类

全部博文(150)

文章存档

2014年(8)

2013年(31)

2012年(111)

分类: Python/Ruby

2012-07-05 18:35:41

这个题目的代码是很简练的,但是有第二问,就是给出最佳的序列,我目前还没写出好的算法。
逢低吸纳是炒股的一条成功秘诀。如果你想成为一个成功的投资者,就要遵守这条秘诀:

"逢低吸纳,越低越买"

这句话的意思是:每次你购买股票时的股价一定要比你上次购买时的股价低.按照这个规则购买股票的次数越多越好,看看你最多能按这个规则买几次。

给定连续的N天中每天的股价。你可以在任何一天购买一次股票,但是购买时的股价一定要比你上次购买时的股价低。写一个程序,求出最多能买几次股票。

以下面这个表为例某几天的股价是:

天数 1  2  3  4  5  6  7  8  9  10 11 12股价 68 69 54 64 68 64 70 67 78 62 98 87

这个例子中聪明的投资者(按上面的定义),如果每次买股票时的股价都比上一次买时低,那么他最多能买4次股票。一种买法如下(可能有其他的买法):

天数 2  5  6  10股价 69 68 64 62

点击(此处)折叠或打开

  1. #!/usr/bin/perl -w
  2. use strict;
  3. my @stock = (68, 69 ,54 ,64, 68, 64, 70, 67, 78, 62, 98, 87);

  4. my @f;
  5. $f[0] = 0;
  6. my @result;
  7. $result[0] = ();
  8. for ( my $x = @stock-1; $x >=0; $x--){
  9.     for(my $i = 1; $i <= @f; $i++ ){
  10.         if($stock[$x] > $f[$i-1] and (!defined($f[$i]) or $stock[$x]<$f[$i])){
  11.             print "fill $i with $stock[$x] \n";
  12.             $f[$i] = $stock[$x];
  13.             push(@{$result[$i]}, $f[$i]);
  14.         #    $repeat[$i]+= $repeat[$i-1];
  15.         }
  16.     }
  17. }
  18. print "@f \n";

阅读(2129) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~