Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Finding missing numbers in a list

by ambrus (Abbot)
on Sep 03, 2004 at 15:51 UTC ( #388321=note: print w/replies, xml ) Need Help??

in reply to Finding missing numbers in a list

You can do it with the .. operator:

@a = (41888, 41889, 41890, 41892, 41895); @m = map $a[$_-1]+1..$a[$_]-1, 1..@a-1; print join(" ", @m), $/;

Replies are listed 'Best First'.
Re^2: Finding missing numbers in a list
by Aristotle (Chancellor) on Sep 03, 2004 at 16:01 UTC

    It isn't the easiest to understand, but that's very nice outside the box thinking!

    Update: minor niggles: use $#a since that's what you mean — and please, please, use better variable names.

    my @list = ( 41888, 41889, 41890, 41892, 41895 ); my @missing = map { ( $list[ $_ - 1 ] + 1 ) .. ( $list[ $_ ] - 1 ) } 1 + .. $#list;

    Makeshifts last the longest.

        I'm not convinced that @list is much of an improvement over @a as a name for an array :-)

        Thats a terrible unconviction :P

        @list is much times better than @array ... @a for short...

        because the question talks about a list of numbers, the @list ... and the @ tells us its array


Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://388321]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (2)
As of 2022-08-17 06:30 GMT
Find Nodes?
    Voting Booth?

    No recent polls found