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

पायथन में सबसे लंबे समय तक वैकल्पिक असमानता तत्वों की लंबाई खोजने का कार्यक्रम

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

इसलिए, यदि इनपुट अंकों की तरह है =[1, 2, 6, 4, 5], तो आउटपुट 4 होगा, क्योंकि सबसे लंबी असमानता वैकल्पिक सबलिस्ट है [2, 6, 4, 5] 2 <6> 4 के रूप में <5.

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

  • फ़ंक्शन get_direction () को परिभाषित करें। इसमें a, b

    . लगेगा
    • वापसी 0 यदि a, b के समान है अन्यथा -1 यदि a

  • यदि अंकों का आकार <2 है, तो

    • अंकों का वापसी आकार

  • max_length :=1, cur_length :=1, last_direction :=0

  • मैं के लिए 0 से लेकर अंकों के आकार -1 तक की सीमा में हूं

    • दिशा:=get_direction (अंक [i], अंक [i + 1])

    • अगर दिशा 0 के समान है, तो

      • cur_length :=1

    • अन्यथा जब दिशा last_direction के समान हो, तब

      • cur_length :=2

    • अन्यथा,

      • cur_length :=cur_length + 1

    • max_length :=अधिकतम_लंबाई और cur_length की अधिकतम

    • last_direction :=दिशा

  • वापसी max_length

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

उदाहरण

class Solution:
   def solve(self, nums):
      if len(nums) < 2:
         return len(nums)
      def get_direction(a, b):
         return 0 if a == b else -1 if a < b else 1
      max_length = 1
      cur_length = 1
      last_direction = 0
      for i in range(len(nums) - 1):
         direction = get_direction(nums[i], nums[i + 1])
         if direction == 0:
            cur_length = 1
         elif direction == last_direction:
            cur_length = 2
         else:
            cur_length += 1
         max_length = max(max_length, cur_length)
         last_direction = direction
      return max_length
ob = Solution()
nums = [1, 2, 6, 4, 5]
print(ob.solve(nums))

इनपुट

[1, 2, 6, 4, 5]

आउटपुट

4

  1. पायथन में एक बाइनरी ट्री के सबसे लंबे वैकल्पिक पथ की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है, हमें सबसे लंबा रास्ता खोजना है जो बाएं और दाएं बच्चे और नीचे जाने के बीच वैकल्पिक हो। तो, अगर इनपुट पसंद है तो आउटपुट 5 होगा क्योंकि वैकल्पिक पथ [2, 4, 5, 7, 8] है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: यदि रूट रिक्त है, तो वापसी 0 एक फ़ंक्

  1. पायथन में सबसे लंबे समय तक विशिष्ट उपन्यास की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है, जिसे nums कहा जाता है, और हमें सबसे लंबी सन्निहित सबलिस्ट की लंबाई का पता लगाना है, जहां इसके सभी तत्व अद्वितीय हैं। इसलिए, यदि इनपुट अंकों की तरह है =[6, 2, 4, 6, 3, 4, 5, 2], तो आउटपुट 5 होगा, क्योंकि अद्वितीय तत्वों की सबसे लंबी सूची [6, 3, 4, 5] है

  1. पायथन में लगातार सबसे लंबे अनुक्रम की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास संख्याओं की एक क्रमबद्ध सरणी है, हमें लगातार तत्वों के सबसे लंबे अनुक्रम की लंबाई का पता लगाना है। इसलिए, यदि इनपुट अंकों की तरह है =[70, 7, 50, 4, 6, 5], तो आउटपुट 4 होगा, क्योंकि लगातार तत्वों का सबसे लंबा अनुक्रम [4, 5, 6, 7] है। इसलिए हम इसकी लंबाई लौटाते हैं:4. इसे हल क