Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ma trận tìm kiếm cho tất cả các hình chữ nhật có kích thước đã cho (chọn các khối ghế)

Vấn đề này được giải quyết tốt hơn nhiều bên ngoài mysql, bằng một ngôn ngữ khác. Nói cách khác, bạn có một ma trận chỗ ngồi, một số chỗ ngồi trong số đó có người ngồi (màu xám):

và bạn muốn tìm tất cả các hình chữ nhật có kích thước đã cho , giả sử 3x5. Bạn có thể thực hiện việc này rất hiệu quả bằng hai đường truyền tuyến tính O(n) thời gian thuật toán (n là số chỗ):

1) trong lần vượt qua đầu tiên , đi theo cột, từ dưới lên trên và đối với mỗi ghế, biểu thị số lượng ghế liên tiếp có sẵn cho đến sau:

lặp lại, cho đến khi:

2) trong lần vượt qua thứ hai , đi theo hàng và tìm kiếm ít nhất 5 số liên tiếp lớn hơn hoặc bằng 3:

vì vậy, cuối cùng, bạn nhận được:

mang lại giải pháp:các dãy số này (vùng màu xanh lá cây) là các cạnh trên cùng của 2 hình chữ nhật có thể có 3x5 ghế trống.

Thuật toán có thể dễ dàng được nâng cao thành v.d. nhận được tất cả các hình chữ nhật với diện tích tối đa. Hoặc, nó có thể được sử dụng để tìm bất kỳ vùng liên tục nào (không chỉ có hình chữ nhật) của N ghế - chỉ là, trong lần vượt qua thứ hai, hãy tìm chuỗi số liên tục có tổng tối thiểu là 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. Máy chủ MySQL- Wamp không hoạt động sau khi nâng cấp win10

  2. sắp xếp bản tổng hợp trong nhóm theo

  3. làm thế nào để tải xuống tệp dựa trên blob từ cơ sở dữ liệu MySQL trong PHP?

  4. Cách thay đổi bộ ký tự từ latin1 sang UTF8 trong MySQL

  5. Xóa rất chậm trên cơ sở mysql với truy vấn con