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

पायथन में बाउंडेड एरे में दिए गए इंडेक्स पर अधिकतम मूल्य खोजने का कार्यक्रम

मान लीजिए कि हमारे पास तीन मान हैं, n, इंडेक्स और मैक्ससम। nums नामक एक सरणी पर विचार करें, हमें nums[index] खोजने होंगे और nums निम्नलिखित शर्तों को पूरा करते हैं -

  • अंकों का आकार n है

  • n में सभी तत्व धनात्मक हैं।

  • |nums[i] - nums[i+1]| <=1 सभी के लिए i, 0 <=i

  • अंकों के सभी तत्वों का योग अधिकतम योग से अधिक नहीं होता है।

  • nums[index] बड़ा किया गया है।

इसलिए, यदि इनपुट n =6, इंडेक्स =3, मैक्ससम =8 जैसा है, तो आउटपुट 2 होगा क्योंकि, हम [1,2,2,2,1,1] जैसी एक सरणी प्राप्त कर सकते हैं, जो सभी को संतुष्ट करती है शर्तों, और यहाँ nums[3] को अधिकतम किया गया है।

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

  • बाएँ :=अधिकतम योग/n का भागफल, दाएँ :=maxSum + 1

  • उत्तर :=0

  • जबकि बाएं <दाएं, करें

    • मध्य :=बाएँ + भागफल (दाएँ-बाएँ)/2

    • ind_l :=(मध्य-1 + अधिकतम 1 और (मध्य-सूचकांक)) * का भागफल (न्यूनतम अनुक्रमणिका और (मध्य-1) /2 + |न्यूनतम 0, मध्य-अनुक्रमणिका-1|

    • ind_r =(मध्य + अधिकतम 1 और (मध्य- (एन-इंडेक्स -1))) * भागफल (न्यूनतम (एन-इंडेक्स) और मध्य)/2 + | न्यूनतम 0 और (मध्य- (एन-इंडेक्स) -1)-1)|

    • अगर ind_l + ind_r <=मैक्ससम, तो

      • उत्तर:=मध्य

      • बायां :=मध्य+1

    • अन्यथा,

      • दाएं:=मध्य

  • वापसी उत्तर

उदाहरण

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

def solve(n, index, maxSum):
   left, right = maxSum//n, maxSum+1
   ans = 0
   while(left<right):
      mid = left + (right-left)//2
      ind_l = (mid-1+max(1,mid-index))*min(index,mid-1)//2 + abs(min(0,mid-index-1))
      ind_r = (mid+max(1,mid-(n-index-1)))*min(n-index, mid)//2+ abs(min(0,mid-(n-index-1)-1))

      if ind_l + ind_r <=maxSum:
         ans = mid
         left = mid+1
      else:
         right = mid
   return ans

n = 6
index = 3
maxSum = 8
print(solve(n, index, maxSum))

इनपुट

6, 3, 8

आउटपुट

2

  1. दिए गए सरणी के किसी भी अनुक्रम का अधिकतम आकार खोजने का कार्यक्रम जहां प्रत्येक जोड़ी पायथन में अच्छी है

    मान लीजिए कि हमारे पास आकार n का अनुक्रम संख्या है। हमें अंकों के बाद के अधिकतम आकार का पता लगाना है जिसमें प्रत्येक जोड़ी (p, q) एक अच्छी जोड़ी है? एक पैट को अच्छा जोड़ा कहा जाता है यदि और केवल यदि वह इनमें से कम से कम एक शर्त रखता है:1. पी के विशिष्ट अभाज्य भाजक की संख्या की समता बी के बराबर है। उ

  1. पायथन प्रोग्राम में सरणी का योग ज्ञात करें

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

  1. शब्दकोश में दूसरा अधिकतम मूल्य खोजने के लिए पायथन कार्यक्रम

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