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

पायथन में प्रत्येक क्वेरी के लिए अधिकतम XOR खोजने का प्रोग्राम


मान लीजिए हमारे पास एक प्रीसॉर्टेड ऐरे nums है जिसका आकार n है और एक मान b है। हम निम्नलिखित क्वेरी को n बार करना चाहते हैं:

  • एक गैर-ऋणात्मक मान k < 2^m खोजें जिससे nums के सभी तत्वों और k का XOR अधिकतम हो। यह k i-वीं क्वेरी का उत्तर है।
  • वर्तमान ऐरे nums से अंतिम तत्व को हटा दें।
  • एक ऐरे answer ढूंढें जहां answer[i] i-वीं क्वेरी का उत्तर हो।

उदाहरण के लिए, यदि इनपुट nums = [0,1,1,3], m = 2 है, तो आउटपुट [0,3,2,3] होगा, क्योंकि:

  • nums = [0,1,1,3], k = 0 क्योंकि 0 XOR 1 XOR 1 XOR 3 XOR 0 = 3।
  • nums = [0,1,1], k = 3 क्योंकि 0 XOR 1 XOR 1 XOR 3 = 3।
  • nums = [0,1], k = 2 क्योंकि 0 XOR 1 XOR 2 = 3।
  • nums = [0], k = 3 क्योंकि 0 XOR 3 = 3।

हल करने के चरण

  1. x := 2^m - 1 सेट करें।
  2. i को 0 से nums के आकार - 1 तक लूप चलाएं:
    • nums[i] := nums[i] XOR x
    • x := nums[i]
  3. nums को उल्टा करके वापस करें।

उदाहरण

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

def solve(nums, m):
    x = 2**m - 1
    for i in range(len(nums)):
        nums[i] ^= x
        x = nums[i]
    return nums[::-1]

nums = [0,1,1,3]
m = 2
print(solve(nums, m))

इनपुट

[0,1,1,3], 2

आउटपुट

[0, 3, 2, 3]
  1. Python में इमारतों की अधिकतम ऊंचाई ज्ञात करें Python में इमारतों की अधिकतम ऊंचाई ज्ञात करें

    n इमारतें एक पंक्ति में (1 से n लेबल)। प्रतिबंध: restrictions[i] = (id, max_height)। नियम: ऊंचाई ≥ 0, पहली इमारत की ऊंचाई = 0, आसन्न इमारतों में ऊंचाई अंतर ≤ 1। अधिकतम संभव ऊंचाई खोजें। एल्गोरिदम: दो पास + शिखर गणना प्रतिबंधों को id द्वारा सॉर्ट करें फॉरवर्ड पास: बाएं से दाएं, प्रत्येक प्रतिबंध को

  1. - पायथन में स्काईलाइन बरकरार रखते हुए कॉन्डोमिनियम की ऊंचाई को अधिकतम करने का प्रोग्राम

    एक 2D मैट्रिक्स दिया गया है जहां matrix[r][c] शहर में एक कॉन्डोमिनियम की ऊंचाई दर्शाता है। पश्चिम-पूर्व स्काईलाइन मैट्रिक्स की प्रत्येक पंक्ति के अधिकतम मान से दिखाई देती है, जबकि उत्तर-दक्षिण स्काईलाइन प्रत्येक स्तंभ के अधिकतम मान से दिखाई देती है। हमें एक नया मैट्रिक्स ढूंढना है जहां प्रत्येक कॉन्

  1. - पायथन में सन्निकट सबएरे के अधिकतम गुणनफल को खोजने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक एक सरणी है, हमें एक सन्निकट सबएरे के तत्वों का गुणनफल ढूंढना है जिसमें सबसे बड़ा गुणनफल हो (कम से कम एक संख्या हो)। इसलिए यदि सरणी [1,9,2,0,2,5] है, तो आउटपुट 18 होगा, क्योंकि सन्निकट सबएरे [1,9,2] का अधिकतम गुणनफल है।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे &minu