Ecco un problema algoritmico che sto cercando di risolvere:
Given a list
[x_1,x_2,...,x_n]return a permutation of elements of the list [y_1,y_2,...,y_n] (where for eachiwe havey_i = x_jfor only onej) which maximises the sum fromk=1tok=n-1of|y_k-y_(k+1)|.
Quindi per semplificare - otteniamo un elenco di numeri interi e dobbiamo "mescolare" questi numeri in modo tale da ottenere un elenco in cui prendiamo la somma di tutti |y_m-y_n| tale che y_m e y_n sono uno accanto all'altro, otteniamo il numero massimo possibile di tutte le permutazioni degli elementi nell'elenco.
Penso che questo possa essere risolto in O(n*log n) , ho pensato di ordinare l'elenco e di restituire una lista in cui il primo elemento è l'elemento massimo, l'elemento successivo è minimo, il prossimo è il massimo di quelli a sinistra, ecc ... Ma questo porta verso il nulla, non posso provare che sia corretto, quindi probabilmente non lo è. Quindi, qualche consiglio su come affrontare questo problema?