Rumah > pembangunan bahagian belakang > C++ > Tulis program dalam C++ untuk mencari perbezaan terkecil kth antara semua pasangan elemen dalam tatasusunan

Tulis program dalam C++ untuk mencari perbezaan terkecil kth antara semua pasangan elemen dalam tatasusunan

WBOY
Lepaskan: 2023-09-05 17:25:06
ke hadapan
816 orang telah melayarinya

Tulis program dalam C++ untuk mencari perbezaan terkecil kth antara semua pasangan elemen dalam tatasusunan

Andaikan kita mempunyai senarai yang mengandungi berbilang integer. Kita perlu mencari perbezaan antara setiap pasangan nilai dalam tatasusunan dan mencari bilangan perbezaan terkecil ke-k. Indeks bermula dari 0 dan nilai k diberikan kepada kita sebagai input.

Jadi jika input adalah seperti nombor = {2, 6, 4, 8}, k = 2, maka output akan menjadi 2.

Perbezaan antara dua pasangan ialah -

(2, 6) = 4

(2, 4) = 2

(2, 8) = 6

(6, 4) = 2

(6 , 8) = 2

(4, 8) = 4

Jika kita mengisih nilai ini, ia menjadi 2, 2, 2, 4, 4, 6. Nilai minimum kedua ialah 2. (diindeks daripada 0).

Untuk menyelesaikan masalah ini kita akan mengikuti langkah berikut -

  • Naikkan k sebanyak 1
  • Isih input tatasusunan
  • le := 0
  • ri := Elemen terakhir input - Item pertama input
  • le
  • pertengahan := (le + ri) / 2
  • tmp := 0
  • lp := 0
  • digunakan untuk memulakan i := 1, apabila i
  • semasa input[i] - input[lp] > pertengahan, jalankan −
    • lp := lp + 1
  • tmp := tmp + i - lp
  • jika tmp >= k, maka -
      ri := mid
  • Jika tidak
    • le := mid + 1
  • kembali le
  • Contoh

    untuk lebih memahami perlaksanaan yang berikut ee

    keluaran

    rreeee

    Atas ialah kandungan terperinci Tulis program dalam C++ untuk mencari perbezaan terkecil kth antara semua pasangan elemen dalam tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

  • Label berkaitan:
    sumber:tutorialspoint.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan