SORU
21 Ocak 2010, PERŞEMBE


En hızlı sayı dizisi eksik sayısını bulmak için yol

100'e 1 (Her ikisi de dahil) sayı dizisi var. Dizinin boyutu 100'dür. Sayılar rasgele dizi eklenir, ama dizideki rastgele boş yuva var. Bu yuvası olarak yuvaya konulmalıdır numarasını bulmak için en hızlı yolu nedir? Java bir çözüm tercih edilir.

CEVAP
21 Ocak 2010, PERŞEMBE


O, bu(n) yapabilirsiniz. Dizi boyunca yineleme ve tüm sayıların toplamını hesaplar. Şimdi, 1 N doğal sayıların toplamı Nx(N 1)/2 olarak ifade edilebilir. Senin durumunda N=100.

N=100 Nx(N 1)/2, dizinin toplamını çıkarın.

Kayıp sayısıdır. Boş yuva olan toplamı hesaplanır yineleme sırasında tespit edilebilir.

// will be the sum of the numbers in the array.
int sum = 0;
int idx = -1;
for (int i = 0; i < arr.length; i  )
{
    if (arr[i] == 0)
    {
         idx = i; 
    }
    else 
    {
         sum  = arr[i];
    }
}

// the total sum of numbers between 1 and arr.length.
int total = (arr.length   1) * arr.length / 2;

System.out.println("missing number is: "   (total - sum)   " at index "   idx);

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kontor.TV

    Kontor.TV

    14 Mart 2006
  • TheDailyTechDose

    TheDailyTech

    15 EKİM 2012
  • USI Events

    USI Events

    6 AĞUSTOS 2013