gpt4 book ai didi

algorithm - 在perl中找到下一个更高数字的最佳算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:29:12 25 4
gpt4 key购买 nike

我试图找到与我的问题类似的以前的话题,但没有找到。

考虑一个获取数组和数字的函数。我想找到下一个更高的数字。

例子:

输入:arr = {2,5,3,8,15,10}, number = 6

输出:8因为6 < 8 .

在 Perl 中执行此操作的最佳算法是什么?

编辑:我尝试过的:

my @arr = (2,5,3,8,15,10);
my $number = 6;
my $next_largest = 10000000;
foreach my $val (@arr) {
if($number < $val && $next_largest > $val) {
$next_largest = $val;
}
}

if(defined($next_largest)) {
print $next_largest."\n";
}

有没有办法不声明 $next_largest = 10000000 ?它看起来不太好,并且不处理值高于此值的情况。另外,如果我尝试 $next_lergest没有数字,它不起作用。

我所说的最好 - 最好看(时间并不那么重要)。

最佳答案

use List::Util 'min';
my @arr = (2,5,3,8,15,10);
my $number = 6;
my $next_largest = min grep $_ > $number, @arr;

if(defined($next_largest)) {
print $next_largest."\n";
}

关于algorithm - 在perl中找到下一个更高数字的最佳算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50785278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com