Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cari matriks untuk semua persegi panjang dari dimensi yang diberikan (pilih blok kursi)

Masalah ini jauh lebih baik diselesaikan di luar mysql, dalam bahasa lain. Dengan kata lain, Anda memiliki matriks kursi, beberapa di antaranya terisi (abu-abu):

dan Anda ingin menemukan semua persegi panjang dengan dimensi tertentu , katakanlah 3x5. Anda dapat melakukannya dengan sangat efisien dengan dua pass linear O(n) waktu algoritma (n adalah jumlah kursi):

1) dalam umpan pertama , menurut kolom, dari bawah ke atas, dan untuk setiap kursi, menunjukkan jumlah kursi berurutan yang tersedia hingga yang ini:

ulangi, sampai:

2) dalam umpan kedua , per baris, dan cari setidaknya 5 angka berurutan lebih besar atau sama dengan 3:

jadi, akhirnya, Anda mendapatkan:

yang menghasilkan solusi:barisan angka ini (area hijau) adalah tepi atas dari 2 kemungkinan persegi panjang 3x5 tempat duduk kosong.

Algoritme dapat dengan mudah ditingkatkan ke mis. dapatkan semua persegi panjang dengan luas maksimum. Atau, ini dapat digunakan untuk menemukan daerah bersambungan (tidak hanya berbentuk persegi panjang) dari N kursi - cukup, selama lintasan kedua, cari urutan bilangan kontinu yang berjumlah setidaknya N.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengubah kolom Tabel Mysql menjadi peka huruf besar-kecil

  2. Izin ditolak di dalam /var/www/html saat membuat situs web dan file-nya dengan server Apache2

  3. C# MySQL DataReader kedua di DataReader while loop

  4. Mengimpor csv ke mysql melalui baris perintah

  5. Kata sandi MySQL () berfungsi untuk PHP