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

पायथन में दी गई सीमा के भीतर उन जोड़ों की संख्या खोजने का कार्यक्रम जहां वर्ग तत्व हैं

मान लीजिए हमारे पास nums1 और nums2 संख्याओं की दो सूची है। और दो नंबर लोअर और अपर भी होते हैं। हमें जोड़े की संख्या ज्ञात करनी है (i, j) जैसे कि कम ≤ nums1[i]^2 + nums2[j]^2 ≤ ऊपर।

इसलिए, यदि इनपुट nums1 =[5, 3, 2] nums2 =[8, 12, 6] निचला =10 ऊपरी =50 जैसा है, तो आउटपुट 2 होगा क्योंकि जोड़े (1, 2) और ( 2, 2)

  • 10 <=3^2 + 6^2 <<50 =10 <=45 <<50
  • 10 <=2^2 + 6^2 <<50 =10 <=40 <<50

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

  • संख्या 1 में प्रत्येक तत्व को उसके वर्ग से बदलें
  • संख्या 2 में प्रत्येक तत्व को उसके वर्ग से बदलें
  • n :=nums1 का आकार
  • m :=nums2 का आकार
  • यदि n> m , तो
    • अंक 1 और अंक 2 बदलें
    • स्वैप n और m
  • nums2 :=लिस्ट nums2 को सॉर्ट करें
  • res :=0
  • प्रत्येक e1 के लिए nums1 में, करें
    • st :=nums2 में डालने के लिए सबसे अधिक स्थान छोड़ दिया (निचला - e1) ताकि तत्वों को क्रमबद्ध किया जा सके
    • en :=nums2 में डालने के लिए सबसे सही स्थिति (ऊपरी - e1) ताकि तत्वों को क्रमबद्ध किया जा सके
    • गिनती :=en - सेंट
    • res :=res + count
  • रिटर्न रेस

उदाहरण

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

from bisect import bisect_left, bisect_right
def solve(nums1, nums2, lower, upper):
   nums1 = [i * i for i in nums1]
   nums2 = [i * i for i in nums2]
   n, m = len(nums1), len(nums2)
   if n > m:
      nums1, nums2 = nums2, nums1
      n, m = m, n
   nums2 = sorted(nums2)
   res = 0
   for e1 in nums1:
      st = bisect_left(nums2, lower - e1)
      en = bisect_right(nums2, upper - e1)
      count = en - st
      res += count
   return res

nums1 = [5, 3, 2]
nums2 = [8, 12, 6]
lower = 10
upper = 50
print(solve(nums1, nums2, lower, upper))

इनपुट

[5, 3, 2], [8, 12, 6], 10, 50

आउटपुट

2

  1. पायथन में एक श्रेणी में नोड्स की संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बीएसटी है, और हमारे पास बाएं और दाएं सीमाएं एल और आर भी हैं, हमें रूट में उन सभी नोड्स की गिनती ढूंढनी है जिनके मान एल और आर (समावेशी) के बीच मौजूद हैं। तो, अगर इनपुट पसंद है l =7, r =13, तो आउटपुट 3 होगा, क्योंकि तीन नोड हैं:8, 10, 12. इसे हल करने के लिए, हम इन चरणों

  1. सूची में सबसे छोटी संख्या खोजने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें सभी सूची दी गई है, हमें सूची में उपलब्ध सबसे छोटी संख्या प्रदर्शित करने की आवश्यकता है यहां हम या तो सूची को क्रमबद्ध कर सकते हैं और सबसे छोटा तत्व प्राप्त कर सकते हैं या सबसे छोटा तत्व प्राप्त करने के लिए अंतर्न

  1. दिए गए रेंज में विषम कारकों वाले तत्वों की संख्या के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक श्रेणी दी गई है, हमें श्रेणी में विषम कारकों की संख्या ज्ञात करने की आवश्यकता है। दृष्टिकोण जैसा कि हम सभी जानते हैं कि सभी पूर्ण वर्गों में एक श्रेणी में विषम संख्या में गुणनखंड होते हैं। तो यहां हम कई पूर्