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

पायथन में सूचकांक या स्थानीय चोटियों को खोजने का कार्यक्रम

मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है। हमें अंकों में प्रत्येक शिखर तत्व का सूचकांक, आरोही क्रम में क्रमबद्ध करना है। एक शिखर तत्व का एक सूचकांक i जब इन तीनों शर्तों को पूरा किया जाता है:1. इसके दाईं ओर अगला नंबर जो अंकों से अलग है [i] मौजूद नहीं है या अंकों से छोटा होना चाहिए [i] 2. पिछली संख्या इसकी बाईं ओर जो अंकों से भिन्न है [i] मौजूद नहीं है या अंकों से छोटा होना चाहिए [i] 3. इसके बाईं ओर या दाईं ओर कम से कम एक संख्या है जो nums[i] से भिन्न है।

इसलिए, यदि इनपुट अंकों की तरह है =[5, 8, 8, 8, 6, 11, 11], तो आउटपुट [1, 2, 3, 5, 6] होगा, क्योंकि 8 के पठार को माना जाता है चोटियाँ [1,2,3]। और 11 भी हैं, [5, 6]।

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

  • n :=अंकों का आकार
  • उत्तर:=एक नई सूची
  • मैं :=0
  • जबकि मैं
  • i0 :=i
  • जबकि मैं
  • i :=i + 1
  • अगर (i0 0 है या nums[i0]> nums[i0 - 1]) और (i is n या nums[i0]> nums[i]), तो
    • यदि i0 0 नहीं है या i n नहीं है, तो
        उत्तर के अंत में
      • एक (i0 से i-1 तक की सूची) डालें
  • वापसी उत्तर
  • उदाहरण

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

    def solve(nums):
       n = len(nums)
       ans = []
       i = 0
       while i < n:
          i0 = i
          while i < n and nums[i] == nums[i0]:
             i += 1
          if (i0 == 0 or nums[i0] > nums[i0 - 1]) and (i == n or nums[i0] > nums[i]):
             if i0 != 0 or i != n:
                ans.extend(range(i0, i))
       return ans
    
    nums = [5, 8, 8, 8, 6, 11, 11]
    print(solve(nums))

    इनपुट

    [5, 8, 8, 8, 6, 11, 11]

    आउटपुट

    [1, 2, 3, 5, 6]

    1. बड़ी संख्या का भाज्य खोजने के लिए पायथन कार्यक्रम

      मान लीजिए कि हमारे पास एक बड़ी संख्या n है। हमें इसका फैक्टोरियल खोजना होगा। कुछ अन्य भाषाओं में बड़ी संख्या का भाज्य ज्ञात करना बहुत कठिन है क्योंकि यह पूर्णांक डेटा प्रकारों की सीमा से अधिक हो सकता है। लेकिन पायथन में यह स्वचालित रूप से लंबाई का पता लगा लेगा और डिफ़ॉल्ट रूप से संख्या को बड़े पूर्ण

    1. पायथन में बहुभुज का क्षेत्रफल ज्ञात करने का कार्यक्रम

      मान लीजिए कि हमारे पास ऑर्डर किए गए बिंदुओं की एक सूची है जो 2 डी विमान पर एक साधारण बहुभुज समापन बिंदु का प्रतिनिधित्व करती है। हमें इस बहुभुज का क्षेत्रफल ज्ञात करना है। इसलिए, यदि इनपुट अंक =[(0, 0), (0,5), (3, 5), (3,0)] की तरह है, तो आउटपुट 15 होगा। इसे हल करने के लिए, हम इन चरणों का पालन क

    1. पायथन में बहुभुज की परिधि खोजने का कार्यक्रम

      मान लीजिए कि हमारे पास ऑर्डर किए गए बिंदुओं की एक सूची है जो 2 डी विमान पर एक साधारण बहुभुज समापन बिंदु का प्रतिनिधित्व करती है। हमें इस बहुभुज का परिमाप ज्ञात करना है। इसलिए, यदि इनपुट अंक =[(0, 0), (0,5), (3, 5), (3,0)] की तरह है, तो आउटपुट 16 होगा क्योंकि दो भुजाओं की लंबाई 3 है और दो भुजाओं