Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

दिए गए आयामों के सभी आयतों के लिए मैट्रिक्स खोजें (सीटों के ब्लॉक चुनें)

यह समस्या किसी अन्य भाषा में, MySQL के बाहर बहुत बेहतर हल है। दूसरे शब्दों में, आपके पास सीटों का एक मैट्रिक्स है, जिनमें से कुछ पर कब्जा है (ग्रे वाले):

और आप दिए गए आयामों के सभी आयत ढूँढ़ना चाहते हैं , 3x5 कहें। आप इसे दो पास रैखिक O(n) . द्वारा बहुत कुशलता से कर सकते हैं समय एल्गोरिथम (एन सीटों की संख्या होने के नाते):

1) पहले पास में , नीचे से ऊपर तक कॉलम के अनुसार जाएं, और प्रत्येक सीट के लिए, इस तक उपलब्ध लगातार सीटों की संख्या को इंगित करें:

दोहराएं, जब तक:

2) दूसरे पास में , पंक्तियों के अनुसार जाएं, और 3 से अधिक या बराबर कम से कम 5 लगातार संख्याएं देखें:

तो, अंत में, आपको मिलता है:

जो समाधान देता है:ये संख्या क्रम (हरे क्षेत्र) 2 संभावित आयतों के शीर्ष किनारे हैं जो 3x5 खाली सीटों के हैं।

एल्गोरिथ्म को आसानी से बढ़ाया जा सकता है उदा। अधिकतम क्षेत्रफल वाले सभी आयत प्राप्त करें। या, इसका उपयोग एन सीटों के किसी भी निरंतर क्षेत्रों (न केवल आयत-आकार) को खोजने के लिए किया जा सकता है - बस, दूसरे पास के दौरान, संख्याओं के निरंतर अनुक्रम की तलाश करें जो कम से कम एन तक हो।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में आयु की गणना करें (InnoDb)

  2. php/mysql में अरबी भाषा प्रकट होती है ???? html में प्रश्न चिह्न

  3. 8GB mysql डंप के आयात में लंबा समय लगता है

  4. सबसे हाल की टिप्पणी या अंतिम पोस्ट द्वारा MySQL आदेश पोस्ट

  5. MySQL में टेबल इंजन बदलना