# $X = missing_n(\@sorted_numbers); sub missing_n { my ($L, $U) = (0, $#{ $_[0] }); my $p = $L + int(($U - $L)/2); return 1 if $_[0][0] != 1; return $_[0][-1] + 1 if $_[0][-1] == @{ $_[0] }; until ($L == $U) { if ($_[0][$p] == $p+1) { $L = $p + 1 } else { $U = $p } $p = $L + int(($U - $L)/2); } return $_[0][$p-1] + 1; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: first missing number
by repson (Chaplain) on Dec 19, 2000 at 13:04 UTC | |
by japhy (Canon) on Dec 19, 2000 at 18:58 UTC | |
by jeffa (Bishop) on Dec 20, 2000 at 03:56 UTC | |
by japhy (Canon) on Dec 20, 2000 at 05:09 UTC | |
|
Re: first missing number
by merlyn (Sage) on Dec 19, 2000 at 11:15 UTC | |
by chipmunk (Parson) on Dec 19, 2000 at 11:27 UTC | |
by merlyn (Sage) on Dec 19, 2000 at 11:29 UTC |