Я пытался найти предыдущие темы, похожие на мой вопрос, но не нашел.
Рассмотрим функцию, которая получает массив и число.Я хотел бы найти следующее более высокое число.
Пример:
Ввод: 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
без номера, это не сработает.
Лучше всего я имел в виду - лучше всего выглядеть (время не так важно).