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

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


मान लीजिए हमारे पास संख्याओं का एक ऐरे A है, जिसमें i-वीं संख्या वह स्थान है जहां एक द्वीप मौजूद है, और एक और पूर्णांक k दिया गया है (1 ≤ k < N)। अब, एक व्यक्ति 0-वें द्वीप पर खड़ा है और उसे अंतिम द्वीप तक पहुंचना है, एक द्वीप से दूसरे द्वीप पर कूदकर ठीक k कूद में। हमें उस अधिकतम कूद की लंबाई का न्यूनतम मान ढूंढना है जो व्यक्ति अपनी यात्रा में करेगा। ध्यान रखें कि सभी द्वीपों की स्थितियां आरोही क्रम में दी गई हैं।

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

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

  • isPossible() फंक्शन परिभाषित करें। यह arr, dist, k लेगा।

  • n := arr का आकार

  • req := 0

  • current := 0

  • previous := 0

  • i को 0 से n तक के लिए, करें:

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

      • current := current + 1

    • req := req + 1

    • यदि current, n के समान है, तो:

      • लूप से बाहर निकलें

    • previous := current - 1

  • यदि current, n के समान नहीं है, तो:

    • False लौटाएं

  • यदि req <= k, तो:

    • True लौटाएं

  • False लौटाएं

  • मुख्य विधि से, निम्नलिखित करें:

  • n := arr का आकार

  • left := 0

  • right := arr का अंतिम तत्व

  • ans := 0

  • जब left <= right, करें:

    • mid := (left + right) / 2;

    • यदि isPossible(arr, mid, k) शून्येतर है, तो:

      • ans := mid

      • right := mid - 1

    • अन्यथा,

      • left := mid + 1

  • ans लौटाएं

उदाहरण

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

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 जैसा है, तो आउटपुट 4 होगा क्योंकि 16 को 4 + 4 + 4 + 4 या

  1. - Python प्रोग्राम: तीन संख्याओं में से अधिकतम खोजें

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

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

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