SORU
7 HAZİRAN 2010, PAZARTESİ


Tek yön uçak biletini Seyahat sorunu

İçeren tek yönlü uçuş dolaylı bir geziye gidiyoruzmilyarlarcaçok büyük, bilinmeyen bir numaratransfer.

  • İki kez aynı havaalanında engel olamayacaksın.
  • Yolculuğun her bölümü için 1 bilet var.
  • Her bir bilet içerirsrcvedsthavaalanı.
  • Tüm biletler rastgele sıralanır.
  • Orijinal kalkış havaalanı (ilk src) ve hedefinizi (son dst) unuttun.

En az seyahatiniz yeniden oluşturmak için bir algoritma büyük . tasarım ^strong>Çkarmaşıklığı.


İki set symmetric difference, telif hakkına ve Dsts kullanmaya başladım bu sorunu çözmek için çalışıyor:

1)dizi telif hakkına tüm src anahtarları Sırala
2)dizi Dsts tüm dst anahtarları Sırala
3)Her iki dizi Birliği'nin bir set olmayan çiftleri bulmak için Oluşturmak - ilk src ve son dst
4)Şimdi, başlangıç noktası olan traverse hem ikili arama kullanarak diziler.

Ama daha etkili bir yöntem olmalı sanırım.

CEVAP
7 HAZİRAN 2010, PAZARTESİ


Bir karma tablo oluşturmak ve karma tabloya her havaalanı ekleyin.

<key,value> = <airport, count>

Havaalanı sayısı havaalanı kaynak veya hedef ise artar. Her havaalanı için sayısı 1 sayısı olan 2 ( dst ve src 1 1) kaynak ve yolculuğun varış noktası dışında olacak.

Her bir bilet en az bir kez bakmak gerekir. Karmaşıklık(n).

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • esnathesinger

    esnathesinge

    6 NİSAN 2009
  • Peter Sharp

    Peter Sharp

    11 ŞUBAT 2013
  • Trevor Eckhart

    Trevor Eckha

    19 Aralık 2009