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

पायथन में k से कम या बराबर योग वाले आयत का अधिकतम योग ज्ञात करने का प्रोग्राम


मान लीजिए हमारे पास एक 2D मैट्रिक्स और एक अन्य मान k है, हमें उस आयत का सबसे बड़ा योग ज्ञात करना है जहां योग ≤ k हो।

इसलिए, यदि इनपुट इस प्रकार है:

5-2
710

और k = 15, तो आउटपुट 12 होगा, क्योंकि हम आयत [5, 7] ले सकते हैं जिससे 15 से कम 12 का योग मिलता है।

हल करने के चरण

  • n := a की पंक्तियों की संख्या

  • m := a के स्तंभों की संख्या

  • ans := -infinity

  • i1 के लिए 0 से n तक की रेंज में, करें

    • row := आकार m की सूची और 0 से भरें

    • i2 के लिए i1 से n तक की रेंज में, करें

      • j के लिए 0 से m तक की रेंज में, करें

        • row[j] := row[j] + a[i2, j]

      • s := एक नया सेट

      • 0 को s में डालें

      • sum := 0

      • j के लिए 0 से m तक की रेंज में, करें

        • sum := sum + row[j]

        • temp := s में उन सभी आइटम्स की सूची जो (sum - k) से बड़े हैं

        • यदि temp का आकार > 0, तो

          • u := temp का न्यूनतम

          • ans := ans और (sum - u) का अधिकतम

        • sum को s में डालें

  • ans लौटाएं

उदाहरण

class Solution:
    def solve(self, a, k):
        n = len(a)
        if n == 0:
            return 0
        m = len(a[0])
        ans = -999999
        for i1 in range(n):
            row = [0]*m
            for i2 in range(i1, n):
                for j in range(m):
                    row[j] += a[i2][j]
                s = set()
                s.add(0)
                sum = 0
                for j in range(m):
                    sum += row[j]
                    temp = [e for e in s if e > (sum - k)]
                    if len(temp) > 0:
                        u = min(temp)
                        ans = max(ans, sum - u)
                    s.add(sum)
        return ans

ob = Solution()
matrix = [
    [5, -2],
    [7, 10]
]
k = 15
print(ob.solve(matrix, k))

इनपुट

[[5, -2], [7, 10]], 15

आउटपुट

12
  1. Python प्रोग्राम में ऐरे का योग खोजना Python प्रोग्राम में ऐरे का योग खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक ऐरे दिया गया है, हमें ऐरे का योग निकालने की आवश्यकता है। पूरे ऐरे को पार करने और प्रत्येक इंडेक्स पर तत्व को जोड़कर योग प्राप्त करने का ब्रूट-फोर्स दृष्टिकोण नीचे चर्चा किया गया है। उदाहरण # sum फ़ंक्शन def

  1. पायथन प्रोग्राम: लिस्ट का संचयी योग ज्ञात करें पायथन प्रोग्राम: लिस्ट का संचयी योग ज्ञात करें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक लिस्ट दी गई है, हमें संचयी योग के साथ एक लिस्ट बनानी है। उदाहरण # संचयी योग def Cumulative(l): new = [] cumsum = 0 for element in l: cumsum += element new.append(cumsum) return new # ड्राइवर

  1. पायथन प्रोग्राम: ऐरे का योग ढूंढें पायथन प्रोग्राम: ऐरे का योग ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इनपुट के रूप में एक ऐरे दिए जाने पर, हमें दिए गए ऐरे का योग निकालने की आवश्यकता है। यहां हम ब्रूट-फोर्स दृष्टिकोण का पालन कर सकते हैं यानी एक लिस्ट को ट्रैवर्स करना और प्रत्येक एलिमें