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

Python में 4Sum II

मान लीजिए हमारे पास चार सूचियाँ A, B, C, D पूर्णांक मानों की हैं, हमें गणना करनी है कि कितने टपल (i, j, k, l) हैं जैसे कि A[i] + B[j] + C[k] + D[l] शून्य है। मान लें कि सभी A, B, C, D की लंबाई N है जहां 0 ≤ N ≤ 500। याद रखें सभी पूर्णांक -228 से 228 - 1 की सीमा में हैं और परिणाम अधिकतम 231 - 1 होने की गारंटी है। इसलिए यदि इनपुट A = [1, 2], B = [-2, -1], C = [-1, 2], D = [0, 2] हैं, तो आउटपुट 2 होगा। ऐसा इसलिए है क्योंकि दो टपल हैं, वे हैं (0, 0, 0, 1) इसलिए A[0] + B[0] + C[0] + D[1] = 1 + (-2) + (-1) + 2 = 0, और दूसरा टपल है (1, 1, 0, 0), A[1] + B[1] + C[0] + D[0] = 2 + (-1) + (-1) + 0 = 0

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

  • sums नामक एक मैप बनाएं
  • A में प्रत्येक तत्व i के लिए
    • B में प्रत्येक तत्व j के लिए
      • यदि i + j sums मैप में नहीं है, तो sums[i + j] := 1 सेट करें
      • अन्यथा sums[i + j] का मान बढ़ाएं
  • काउंटर := 0
  • C में प्रत्येक तत्व i के लिए
    • D में प्रत्येक तत्व j के लिए
      • यदि (-1)*(i + j) sums में है, तो काउंटर := काउंटर + sums[-1 * (i + j)]
  • काउंटर लौटाएं

उदाहरण

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

class Solution(object):
    def fourSumCount(self, A, B, C, D):
        sums = {}
        for i in A:
            for j in B:
                if i + j not in sums:
                    sums[i + j] = 1
                else:
                    sums[i + j] += 1
        counter = 0
        for i in C:
            for j in D:
                if -1 * (i + j) in sums:
                    counter += sums[-1 * (i + j)]
        return counter
ob1 = Solution()
print(ob1.fourSumCount([1, 2], [-2, -1], [-1, 2], [0, 2]))

इनपुट

[1,2] [-2,-1] [-1,2] [0,2]

आउटपुट

2
  1. पायथन में issuperset() फंक्शन पायथन में issuperset() फंक्शन

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे।यह मेथड बूलियन True वापस करता है यदि सेट B के सभी तत्व सेट A के सभी तत्वों को समाहित करते हैं जिसे तर्क के रूप में पारित किया जाता है और झूठा वापस करता है यदि A के सभी तत्व B में मौजूद नहीं हैं।इसका म

  1. - पायथन में अंडरस्कोर (_)

    पायथन में कुछ मामलों में हम सिंगल अंडरस्कोर (_) और कुछ मामलों में डबल अंडरस्कोर (__) का उपयोग करते हैं। पायथन में निम्नलिखित मामले हैं, जहां हम अंडरस्कोर का उपयोग करते हैं। यदि हम इंटरप्रेटर में अंतिम अभिव्यक्ति का मान स्टोर करना चाहते हैं। यदि हम कुछ मानों को अनदेखा करना चाहते हैं। वेरिएबल या फ़ं

  1. - पायथन में क्वाइन (Quine)

    क्वाइन एक प्रोग्राम है, जो कोई इनपुट नहीं लेता, लेकिन यह आउटपुट उत्पन्न करता है। यह अपना स्वयं का सोर्स कोड दिखाएगा। इसके अतिरिक्त, क्वाइन की कुछ शर्तें हैं। हम प्रोग्राम के अंदर सोर्स कोड फ़ाइल नहीं खोल सकते। उदाहरण कोड a=a=%r;print (a%%a);print (a%a) आउटपुट a=a=%r;print (a%%a);print (a%a) यह क्व