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

पायथन में बिल्कुल k जंप में अंतिम द्वीप तक पहुंचने के लिए आवश्यक न्यूनतम अधिकतम लंबाई का पता लगाएं


मान लीजिए कि हमारे पास संख्याओं की एक सरणी A है, A में i-th संख्या वह स्थिति है जहां एक द्वीप मौजूद है, और दूसरा पूर्णांक k दिया गया है (1 ≤ k

इसलिए, यदि इनपुट ए =[7, 20, 41, 48], के =2 जैसा है, तो आउटपुट 28 होगा, क्योंकि अंतिम द्वीप 7 से 20 से 48 तक पहुंचने के दो तरीके हैं, यहां अधिकतम दूरी किन्हीं दो लगातार द्वीपों के बीच 48 और 20 के बीच यानी 28 है। और 7 से 41 से 48 तक यहां किन्हीं दो लगातार द्वीपों के बीच अधिकतम दूरी 41 और 7 के बीच है जो कि 34 है। तो, 28 और 34 की न्यूनतम 28 है।

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

  • एक फ़ंक्शन को परिभाषित करें isPosible() । यह गिरफ्तारी, जिला, कश्मीर ले जाएगा

  • n :=गिरफ्तारी का आकार

  • अनुरोध :=0

  • वर्तमान :=0

  • पिछला:=0

  • मेरे लिए 0 से n की सीमा में, करें

    • जबकि करंट n के समान नहीं है और (arr[current] - arr[previous]) <=dist, do

      • वर्तमान:=वर्तमान + 1

    • अनुरोध :=अनुरोध + 1

    • अगर करंट n के समान है, तो

      • लूप से बाहर आएं

    • पिछला:=वर्तमान - 1

  • अगर करंट n के समान नहीं है, तो

    • झूठी वापसी

  • अगर अनुरोध <=के, तो

    • सही लौटें

  • झूठी वापसी

  • मुख्य विधि से, निम्न कार्य करें -

  • n :=गिरफ्तारी का आकार

  • बायां :=0

  • दाएं:=गिरफ्तारी का अंतिम तत्व

  • उत्तर:=0

  • जबकि बाएँ −=दाएँ, करें

    • मध्य:=(बाएं + दाएं) / 2;

    • अगर संभव है (गिरफ्तारी, मध्य, के) गैर-शून्य है, तो

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

      • दाएं:=मध्य - 1

    • अन्यथा,

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

  • वापसी उत्तर

उदाहरण

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

def isPossible(arr,dist, k) :
   n = len(arr)
   req = 0
   current = 0
   previous = 0
   for i in range(0, n):
      while (current != n and (arr[current] - arr[previous]) <= dist):
         current += 1
      req += 1
      if (current == n):
         break
      previous = current - 1
   if (current != n):
      return False
   if (req <= k):
      return True
   return False
def minimum_distance(arr, k):
   n = len(arr)
   left = 0
   right = arr[-1]
   ans = 0
   while (left <= right):
      mid = (left + right) // 2;
      if (isPossible(arr, mid, k)):
         ans = mid
         right = mid - 1
      else:
         left = mid + 1
   return ans
arr = [7, 20, 41, 48]
k = 2
print(minimum_distance(arr, k))

इनपुट

[7, 20, 41, 48] , 2

आउटपुट

28

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

    मान लीजिए कि हमारे पास एक दी गई संख्या N है, जो कि श्रेणी (1<=N<=10^9) में है, हमें N को समग्र योगों की सबसे बड़ी संभव संख्या के योग के रूप में प्रस्तुत करना होगा और इस सबसे बड़ी संख्या को वापस करें, अन्यथा जब हमें कोई विभाजन नहीं मिल रहा है, तो -1 लौटा दें। इसलिए, यदि इनपुट 16 की तरह है, तो आउटपुट

  1. अधिकतम तीन नंबर खोजने के लिए पायथन प्रोग्राम

    इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो तीन अंकों से अधिकतम राशि का पता लगाता है। हमारे पास तीन संख्याएँ होंगी, और हमारा लक्ष्य उन तीन संख्याओं में से अधिकतम संख्या ज्ञात करना है। आइए बेहतर समझ के लिए कुछ नमूना परीक्षण मामलों को देखें। Input: a, b, c = 2, 34, 4 Output: 34 Input: a

  1. पायथन में स्ट्रिंग की अधिकतम लंबाई क्या है?

    एक स्ट्रिंग की अधिकतम लंबाई प्लेटफ़ॉर्म पर निर्भर होती है और पता स्थान और/या RAM पर निर्भर करती है। sys मॉड्यूल में परिभाषित अधिकतम आकार स्थिरांक 64 बिट सिस्टम पर 263-1 लौटाता है। >>> import sys >>> sys.maxsize 9223372036854775807 प्लेटफ़ॉर्म के Py_ssize_t प्रकार द्वारा समर्थ