Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

लोगों की शफ़ल्ड कतार को पुनर्प्राप्त करने का पायथन प्रोग्राम


मान लीजिए हमारे पास एक 2D मैट्रिक्स है जहां प्रत्येक पंक्ति में दो मान [height, count] होते हैं जो दर्शाते हैं कि व्यक्ति की दी गई ऊंचाई है और उसके सामने 'count' संख्या में लोग हैं जो कम से कम उतने ही लंबे हैं। अब विचार करें कि यह कतार शफ़ल हो गई है, हमें कतार का मूल क्रम पुनर्प्राप्त करना है।

उदाहरण के लिए, यदि इनपुट इस तरह है:

2
2
4
0
5
0

तो आउटपुट होगा:

4
0
5
0
2
2

इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:

  • N := मैट्रिक्स की पंक्ति संख्या
  • मैट्रिक्स पंक्तियों को बढ़ती ऊंचाई और घटते काउंट के आधार पर पुनर्व्यवस्थित करें
  • ans := आकार N की एक सूची बनाएं और प्रारंभ में सभी प्रविष्टियां नल हैं
  • प्रत्येक ऊंचाई h, और काउंट c के लिए मैट्रिक्स पंक्ति में, करें
    • temp := 0
    • प्रत्येक इंडेक्स i, और मान num ans के लिए, करें
      • यदि temp >= c और num नल है, तो
        • ans[i] := [h, c]
        • लूप से बाहर निकलें
      • यदि num नल है या num[0] >= h, तो
        • temp := temp + 1
  • ans लौटाएं

बेहतर समझ के लिए निम्न कार्यान्वयन देखें:

उदाहरण

class Solution:
    def solve(self, matrix):
        N = len(matrix)
        matrix.sort(key=lambda x: [x[0], -x[1]])
        ans = [None] * N
        for h, c in matrix:
            temp = 0
            for i, num in enumerate(ans):
                if temp >= c and num is None:
                    ans[i] = [h, c]
                    break
                if num is None or num[0] >= h:
                    temp += 1
        return ans

ob = Solution()
matrix = [
    [2, 2],
    [4, 0],
    [5, 0]
]
print(ob.solve(matrix))

इनपुट

[[2, 2], [4, 0], [5, 0]]

आउटपुट

[[4, 0], [5, 0], [2, 2]]

  1. पायथन में वर्टेक्स-टू-वर्टेक्स पहुंच योग्यता मैट्रिक्स की गणना करने का प्रोग्राम पायथन में वर्टेक्स-टू-वर्टेक्स पहुंच योग्यता मैट्रिक्स की गणना करने का प्रोग्राम

    मान लीजिए हमारे पास एक ग्राफ है जिसे एडजेसेंसी सूची के रूप में दर्शाया गया है, हमें 2D मैट्रिक्स M ढूंढना है जहां: M[i, j] = 1 जब वर्टेक्स i और j के बीच कोई पथ हो। M[i, j] = 0 अन्यथा। उदाहरण के लिए, यदि इनपुट जैसा है: तो आउटपुट होगा: 11111 01111 01111 01111 01111 इसे हल करने के लिए हम निम्न

  1. पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक मैट्रिक्स दिए जाने पर, हमें ट्रांसपोज़ को उसी मैट्रिक्स में स्टोर करना होगा और इसे प्रदर्शित करना होगा। मैट्रिक्स का ट्रांसपोज़ पंक्तियों को कॉलम में और कॉलम को पंक्तियों में बदलकर

  1. - पायथन प्रोग्राम: दो मैट्रिक्स का गुणन

    दो यूजर इनपुट मैट्रिक्स दी गई हैं। हमारा कार्य दो मैट्रिक्स का गुणन प्रदर्शित करना है। इन समस्याओं में हम नेस्टेड लिस्ट कॉम्प्रिहेंशन का उपयोग करते हैं।एल्गोरिदमचरण 1: दो मैट्रिक्स इनपुट करें। चरण 2: प्रत्येक पंक्ति और प्रत्येक कॉलम के माध्यम से इटरेट करने के लिए नेस्टेड फॉर लूप्स। चरण 3: एक रिजल्टे