我正在尝试解决一个问题
拉胡尔正在玩一个非常有趣的游戏。他有 N 个圆盘(每个圆盘的半径相等)。每个磁盘都有一个从 1 到 N 的不同数字与之关联。磁盘在一个堆中一个接一个地放置。
Rahul 想要按从上到下的递增顺序对这堆磁盘进行排序。但是他有一个非常非常特殊的方法来做到这一点。一步他只能从一堆磁盘中选择一个,他只能把它放在最上面。
Rahul 想要以最少的可能步骤对他的一堆磁盘进行排序。所以帮助拉胡尔这样做。因此,不必显示实际步骤,只需回答对堆进行排序的最小可能步骤数,以便 Rahul 可以检查他的工作是对还是错。
我正在写的代码是
sub get_order {
my (@input1)= @_;
my @input2 = @input1;
my $count = 0;
sub recursive {
my $max = 0;
last if ( $#input2 == -1 ) ;
foreach ( 0 .. $#input2) {
$max = $max > $input2[$_] ? $max : $input2[$_];
print " maximum is $max \n";
}
if ( $max == $input2[$max-1] ) {
$abc = 0;
} else {
$count++;
#push @input2, $max;
}
# deleting that particular array index from the array
my %hash = map {
$_ => "1"
} @input2;
delete $hash{$max};
print %hash;
print "\n";
@input2 = keys %hash;
print "***@input2 \n";
&recursive();
}
&recursive();
print "value is $count \n";
return $count;
}
get_order(3,1,2);
我在 test.txt 第 8 行的循环块之外收到错误不能“持续”。