Rastgele sırayla bir tamsayılar listesi verildiğinde, her listenin öğelerinin toplamı arasındaki farkın maksimum olduğu ve iki yeni bağlantılı listelere bölünmesi Listenin uzunluğu 1'den fazla değildir (orjinal listenin tek sayıda eleman içermesi durumunda). Listedeki sayıların benzersiz olduğunu düşünemiyorum. ve sonra yürümek bir özyinelemeli işlevi kullanmak;Bağlantılı bir listeyi en küçük ve en büyük sayıları içeren 2 çift listeye ayırma
benim aklıma algoritması birleştirme özgün bağlantılı listesinde sıralama (log n) zaman, O (n) uzay O (n & middot) yapmak oldu uzunluğunu belirlemek için listenin sonu, özyineleme işlevi gevşerken bölmeyi yapmak. Yinelemeli işlev O (n) zaman ve O (n) boşluğudur.
Bu en uygun çözüm mü? Birisi alakalı olduğunu düşünürse kodumu gönderebilirim.
Eğer senin bağlantılı liste uygulaması bir boyut özelliğini korur, daha sonra listeyi yarıya kadar kesmek için sadece listenin yarısına kadar yürütün. (Http://codereview.stackexchange.com adresini ziyaret etmek ister!) – Jeremy
@Jeremy Heiler: Boyut özelliği yok, sadece çok sade bir jane temel bağlantılı liste, gerçekten birbirine bağlı düğümlerin bir demet daha fazla bir şey yok. –
Sınavınız sınava tabi tutulmasını gerektirmediği sürece, sıralama işlemini yapmak için Collections.sort da kullanabilirsiniz. – karakuricoder