Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^2: Challenge: Sorting Sums Of Sorted Series

by Limbic~Region (Chancellor)
on Feb 02, 2010 at 23:01 UTC ( #821055=note: print w/ replies, xml ) Need Help??


in reply to Re: Challenge: Sorting Sums Of Sorted Series
in thread Challenge: Sorting Sums Of Sorted Series

blokhead,
Your code needs some TLC and your for (0 .. $#list) should probably be for (;;) loops. I had this idea too but felt it wasn't in the spirit of what ikegami intended (though it meets my criteria just fine).

  1. Find the lowest sum paying attention to how many times it appears, then print
  2. Find the lowest sum that is greater than the previous pass paying attention to how many times it appears, then print
  3. Repeat until there are no new values found

The best solution I have (memory/time) is 4N + M but the most memory efficient while still having a reasonable run time is 2N + M.

Cheers - L~R


Comment on Re^2: Challenge: Sorting Sums Of Sorted Series
Re^3: Challenge: Sorting Sums Of Sorted Series
by ikegami (Pope) on Feb 03, 2010 at 21:33 UTC

    Your code needs some TLC and your for (0 .. $#list) should probably be for (;;) loops.

    Why? Do you believe the list gets flattened? No, for (EXPR..EXPR) is implemented as a counting loop.

      ikegami,
      Notice I didn't say blokhead was wrong. I said should because it would make it obvious. Not everyone has a grasp of how things are implemented in all versions of perl. In fact, this is what perlop has to say on the matter.

      In list context, it returns a list of values counting (up by ones) from the left value to the right value.....In the current implementation, no temporary array is created when the range operator is used as the expression in foreach loops, but older versions of Perl might burn a lot of memory when you write something like this:

      Again, someone that doesn't follow perl closely might think - what version would blokhead's solution be breaking the rules or will this continue to be correct in the next version. Making it obvious eliminates any casual observer confusion.

      Cheers - L~R

        I'm not concerned about about the behaviour of versions of Perl before 5.6, and I think very very few are in the other camp, so I think that warning shouldn't be in the docs anymore. I find for EXPR..EXPR much clearer than the alternative, so I disagree with your opinion that he should switch to the alternative.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2014-09-23 23:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (241 votes), past polls