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

पायथन में खाली और कब्जे वाली सीटों के बीच अधिकतम दूरी खोजने का कार्यक्रम

मान लीजिए कि हमारे पास केवल 0s और 1s वाली एक सूची है जिसे सीटें कहते हैं। जहां सीटें [i] एक सीट का प्रतिनिधित्व करती हैं। जब यह 1 होता है, तो यह कब्जा कर लिया जाता है, अन्यथा मुक्त। कम से कम एक खाली सीट है और कम से कम एक कब्जा वाली सीट है, हमें एक मुफ्त सीट से निकटतम कब्जे वाली सीट तक की अधिकतम दूरी का पता लगाना है।

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

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

  • रेस :=0

  • अंतिम :=-1

  • n :=सीटों का आकार

  • मैं के लिए 0 से n -1 की सीमा में, करो

    • अगर सीटें[i] 1 है, तो

      • res :=अधिकतम रेस और (i यदि अंतिम <0 अन्यथा (i-last)/2 की मंजिल)

      • अंतिम:=मैं

  • अधिकतम रेस और (n-last-1)

    . लौटाएं

उदाहरण

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

def solve(seats):
   res, last, n = 0, -1, len(seats)
   for i in range(n):
      if seats[i]:
         res = max(res, i if last < 0 else (i - last) // 2)
         last = i
   return max(res, n - last - 1)

seats = [1, 0, 1, 0, 0, 0, 1]
print(solve(seats))

इनपुट

[1, 0, 1, 0, 0, 0, 1]

आउटपुट

2

  1. एक समकोण त्रिभुज के मध्य-बिंदु और आधार के बीच कोण खोजने के लिए पायथन प्रोग्राम

    मान लीजिए कि हमारे पास एक समकोण त्रिभुज की दो भुजाएँ हैं, ये भुजाएँ AB और BC हैं। मान लें कि कर्ण AC का मध्य बिंदु M है। हमें M और BC के बीच का कोण ज्ञात करना है। इसलिए, अगर इनपुट ab =6 bc =4 जैसा है, तो आउटपुट 56.309932474020215 होगा क्योंकि ab/bc का arc_tan 0.9828 है लेकिन डिग्री में यह 56.31 ह

  1. पायथन में एक बाइनरी ट्री में दो नोड्स के बीच की दूरी का पता लगाने का कार्यक्रम

    मान लीजिए, हमें एक बाइनरी ट्री दिया जाता है और हमें बाइनरी ट्री में दो नोड्स के बीच की दूरी का पता लगाने के लिए कहा जाता है। हम दो नोड्स के बीच के किनारों को एक ग्राफ की तरह ढूंढते हैं और किनारों की संख्या या उनके बीच की दूरी को वापस कर देते हैं। पेड़ के नोड की संरचना नीचे दी गई है - data : <inte

  1. पायथन में नोड और वंशज के बीच अंतर खोजने का कार्यक्रम

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