On 20/09/2016 12:52, Daiyue Weng wrote:

Hi, I have a list numbers say,

[1,2,3,4,6,8,9,10,11]

First, I want to calculate the sum of the differences between the numbers
in the list.
At least for this first part a little pencil, paper and algebra yields a simple formula of constant and minimal calculation time. I had an intuitive guess and wrote down the sum of differences for a couple of examples,
[1, 2, 5]       => 4
[9, 11, 17, 19] => 10
It works for negative differences as well,
[1, 2, 5, 1]    => 0
The trick is to spot the relation between the sum of differences and the numbers in the list. A few lines of algebra then gave a very simple formula.

As for the rest it's down to code as others have hinted at.
Second, if a sequence of numbers having a difference of 1, put them in a
list, i.e. there are two such lists,

[1,2,3]

[8,9,10,11]

and also put the rest numbers in another list, i.e. there is only one such
list in the example,

[6].

Third, get the lists with the max/min sizes from above, i.e. in this
example, the max list is,

[8,9,10,11]

min list is

[1,2,3].

What's the best way to implement this?

cheers

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to