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

पायथन में पीक एलिमेंट ढूंढें

मान लीजिए हमें एक ऐरे में पीक एलिमेंट ढूंढना है। पीक एलिमेंट वह एलिमेंट है जो अपने पड़ोसियों से बड़ा है। मान लीजिए हमारे पास एक इनपुट ऐरे nums है, जहां nums[i] ≠ nums[i+1], एक पीक एलिमेंट खोजें और उसका इंडेक्स लौटाएं। ऐरे में कई पीक एलिमेंट हो सकते हैं, उस स्थिति में किसी एक पीक एलिमेंट का इंडेक्स लौटाएं। हम कल्पना कर सकते हैं कि nums[-1] = nums[n] = -∞। इसलिए यदि ऐरे [1,2,1,3,5,6,4] जैसा है, तो पीक एलिमेंट्स 1 या 5 होने चाहिए।

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

  • low := 0 और high := ऐरे का अंतिम इंडेक्स, n := ऐरे का आकार, ans := infinity
  • जब तक low <= high
    • mid := low + (high - low) / 2
    • यदि mid - 1 >= 0 और nums[mid - 1] <= nums[mid], तो low := mid, अन्यथा high := mid - 1
  • low लौटाएं

यह बाइनरी सर्च का उपयोग करके O(log n) समय में पीक ढूंढता है।

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

उदाहरण

class Solution(object):
    def findPeakElement(self, nums):
        low = 0
        high = len(nums) - 1
        while low < high:
            mid = low + (high - low + 1) // 2
            if (mid - 1 >= 0 and nums[mid - 1] <= nums[mid]):
                low = mid
            else:
                high = mid - 1
        return nums[low + 1]

ob1 = Solution()
print(ob1.findPeakElement([15, 35, 85, 96, 5, 6, 8, 12]))

इनपुट

[15,35,85,96,5,6,8,12]

आउटपुट

5
  1. Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना

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

  1. पायथन प्रोग्राम: ऐरे में सबसे बड़ा एलिमेंट ढूंढें पायथन प्रोग्राम: ऐरे में सबसे बड़ा एलिमेंट ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इनपुट के रूप में एक ऐरे दिए जाने पर, हमें ऐरे में सबसे बड़ा एलिमेंट ढूंढने की आवश्यकता है। दृष्टिकोण हम max को पहले एलिमेंट के रूप में इनिशियलाइज़ करते हैं। इसके बाद, हम दिए गए ऐरे

  1. - पायथन में सूची में किसी तत्व का इंडेक्स कैसे खोजें?

    index() मेथड जो सूची (साथ ही स्ट्रिंग और टुपल जैसे अन्य सीक्वेंस टाइप) के लिए उपलब्ध है, किसी विशेष तत्व की पहली ऑकरेंस खोजने के लिए उपयोगी है। >>> L1 = [a, b, c, a, x] >>> L1 [a, b, c, a, x] >>> L1.index(a) 0 एक तत्व के सभी ऑकरेंस के इंडेक्स प्राप्त करने के लिए, enumera