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

Python में स्थानीय शिखरों के इंडेक्स खोजने का प्रोग्राम

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

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

हल करने का दृष्टिकोण

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

उदाहरण

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. पायथन में बहुभुज का क्षेत्रफल खोजने का प्रोग्राम पायथन में बहुभुज का क्षेत्रफल खोजने का प्रोग्राम

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

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

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