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

जांचें कि क्या कोई संख्या पायथन में एक क्रमबद्ध सरणी में बहुसंख्यक तत्व है


मान लीजिए कि हमारे पास एक सरणी है, जिसे nums कहा जाता है और जिसे गैर-घटते क्रम में क्रमबद्ध किया जाता है, और एक संख्या लक्ष्य। हमें यह पता लगाना होगा कि क्या लक्ष्य बहुसंख्यक तत्व है। एक सरणी में बहुसंख्यक तत्व एक ऐसा तत्व है जो लंबाई N की एक सरणी में N/2 से अधिक बार दिखाई देता है। इसलिए यदि सरणी इस तरह है - [2,4,5,5,5,5,5,6,6] और लक्ष्य 5 है, तो आउटपुट सत्य है।

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

  • दो सहायक मॉड्यूल होंगे, निचला () और ऊपरी ()। ये इस प्रकार हैं।
  • निचला() दो तर्क सरणी गिरफ्तारी और लक्ष्य लेता है, वह है -
  • निम्न:=0, उच्च:=गिरफ्तारी की लंबाई
  • जबकि कम <उच्च −
    • मध्य :=निम्न + (उच्च-निम्न)/2
    • अगर गिरफ्तारी [मध्य] =लक्ष्य, तो उच्च =मध्य, अन्यथा निम्न =मध्य + 1
  • गिरफ्तार होने पर उच्च वापसी करें [उच्च] =लक्ष्य, अन्यथा -1
  • ऊपरी () दो तर्क सरणी गिरफ्तारी और लक्ष्य लेता है, वह है -
  • निम्न =0, उच्च =गिरफ्तारी की लंबाई
  • जबकि कम <उच्च −
    • मध्य =निम्न + (उच्च-निम्न)/2
    • अगर गिरफ्तारी [मध्य] =लक्ष्य, तो निम्न =मध्य, अन्यथा उच्च =मध्य - 1
  • गिरफ्तारी होने पर कम वापसी करें [कम] =लक्ष्य, अन्यथा -1
  • मुख्य कार्य इस प्रकार होगा -
  • u :=ऊपरी(गिरफ्तारी, लक्ष्य)
  • l :=निचला (गिरफ्तारी, लक्ष्य)
  • सही लौटें, जब u - l + 1> (अंकों की लंबाई) / 2 यदि u -1 नहीं है, अन्यथा गलत है

उदाहरण (पायथन)

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

class Solution(object):
   def upper(self,n,target):
      low = 0
      high = len(n)-1
      while low<high:
         mid = low + (high - low + 1)//2
         if n[mid] == target:
            low = mid
         else:
            high = mid-1
      return low if n[low] == target else -1
   def lower(self,n,target):
      low = 0
      high = len(n)-1
      while low < high:
         mid = low + (high - low)//2
         if n[mid]== target:
            high = mid
         else :
            low = mid +1
      return high if n[high] == target else -1
   def isMajorityElement(self, nums, target):
      u = self.upper(nums,target)
      l = self.lower(nums,target)
      return u-l+1 >len(nums)/2 if u != -1 else False
ob1 = Solution()
print(ob1.isMajorityElement([2,4,5,5,5,5,5,6,6], 5))

इनपुट

[2,4,5,5,5,5,5,6,6]
5

आउटपुट

true

  1. पायथन में सॉर्ट किए गए ऐरे को मर्ज करें

    मान लीजिए कि हमारे पास दो क्रमबद्ध सरणी A और B हैं। हमें उन्हें मर्ज करना है और केवल एक क्रमबद्ध सरणी C बनाना है। सूचियों का आकार भिन्न हो सकता है। उदाहरण के लिए, मान लीजिए A =[1,2,4,7] और B =[1,3,4,5,6,8], तो मर्ज की गई सूची C होगी [1,1,2,3,4, 4,5,6,7,8] इसे हल करने के लिए, इन चरणों का पालन करें

  1. प्राइम नंबर चेक करने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक नंबर दिया गया है, हमें यह जांचना होगा कि दी गई संख्या एक अभाज्य संख्या है या नहीं। 1 से बड़ी दी गई धनात्मक संख्या जिसका 1 के अलावा कोई अन्य गुणनखंड नहीं है और संख्या ही अभाज्य संख्या कहलाती है। 2, 3, 5, 7, आ

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

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक पूर्णांक n दिया गया है, हमें यह जांचना होगा कि दिया गया पूर्णांक एक आर्मस्ट्रांग संख्या है। एक धनात्मक पूर्णांक को आर्मस्ट्रांग क्रमांक n कहा जाता है यदि abcd... = a^n + b^n + c^n + d^n + &hel