SORU
7 EKİM 2009, ÇARŞAMBA


Algoritma: kaldırmak için etkili bir yolu, bir dizi tamsayılar yinelenen

Microsoft ile bir röportaj da bu sorun var.

Rasgele sayı dizisi verildiğinde, kaldırır C bir algoritma yazmak sayı yinelenen ve özgün benzersiz numaralar dönüş dizi.

E. g Giriş: {4, 8, 4, 1, 1, 2, 9} Çıkış: {4, 8, 1, 2, 9, ?, ?}

Bir uyarı beklenen algoritma ilk sıralanacak dizi değil gerekli olmasıdır. Ve bir unsur çıkarıldığı zaman, aşağıdaki unsurlar öne de değiştirdi olmalıdır. Neyse, unsurlar öne kaydırıldı nerede dizisi kuyruk elemanlarının değeri yok denecek kadar azdır.

Güncelleme:Sonuç orijinal dizi içinde iade edilmelidir ve yardımcı veri yapısı (örneğin, karma tablo) kullanılmamalıdır. Ancak, düzenin korunması gerekli değil sanırım.

Update2:Neden bu pratik kısıtlamaları merak edenler için, bu röportaj bir soru oldu ve tüm bu kısıtlamaları düşünme sürecinde farklı fikirler nasıl uyar tartışılır.

CEVAP
7 EKİM 2009, ÇARŞAMBA


Bir çözüm kız arkadaşım tarafından önerilen sıralama birleştirme çeşididir. Tek değişiklik sırasında adım birleştirme, sadece yinelenen değerleri göz ardı edilir. Bu çözüm de O(n log n) olur. Bu yaklaşım, sıralama/çoğaltma kaldırılması için bir araya birleştirilir. Ancak, eğer herhangi bir fark yapar emin değilim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Artorius FullPower

    Artorius Ful

    29 Temmuz 2007
  • bethliebert

    bethliebert

    23 EKİM 2008
  • emimusic

    emimusic

    10 Mart 2006