Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,21 @@
|
|||
use strict;
|
||||
|
||||
sub max_sub(\@) {
|
||||
my ($a, $maxs, $maxe, $s, $sum, $maxsum) = shift;
|
||||
foreach (0 .. $#$a) {
|
||||
my $t = $sum + $a->[$_];
|
||||
($s, $sum) = $t > 0 ? ($s, $t) : ($_ + 1, 0);
|
||||
|
||||
if ($maxsum < $sum) {
|
||||
$maxsum = $sum;
|
||||
($maxs, $maxe) = ($s, $_ + 1)
|
||||
}
|
||||
}
|
||||
@$a[$maxs .. $maxe - 1]
|
||||
}
|
||||
|
||||
my @a = map { int(rand(20) - 10) } 1 .. 10;
|
||||
my @b = (-1) x 10;
|
||||
|
||||
print "seq: @a\nmax: [ @{[max_sub @a]} ]\n";
|
||||
print "seq: @b\nmax: [ @{[max_sub @b]} ]\n";
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
use strict;
|
||||
|
||||
my @a = (-1 , -2 , 3 , 5 , 6 , -2 , -1 , 4 , -4 , 2 , -1);
|
||||
|
||||
my @maxsubarray;
|
||||
my $maxsum = 0;
|
||||
|
||||
foreach my $begin (0..$#a) {
|
||||
foreach my $end ($begin..$#a) {
|
||||
my $sum = 0;
|
||||
$sum += $_ foreach @a[$begin..$end];
|
||||
if($sum > $maxsum) {
|
||||
$maxsum = $sum;
|
||||
@maxsubarray = @a[$begin..$end];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print "@maxsubarray\n";
|
||||
Loading…
Add table
Add a link
Reference in a new issue