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

  • ASUS

    ASUS

    22 EKİM 2005
  • Michael Lummio

    Michael Lumm

    25 Mayıs 2007
  • Santozz Yazz

    Santozz Yazz

    23 Mart 2014