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

पायथन में हीटर

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

इसलिए, यदि इनपुट [1,2,3,4], [1,4] जैसा है, तो आउटपुट 1 होगा क्योंकि दो हीटरों को स्थिति 1 और 4 में रखा गया था। हमें त्रिज्या 1 का उपयोग करना होगा, फिर सभी घरों को गर्म किया जा सकता है।

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

  • सूची घरों को क्रमबद्ध करें

  • सूची हीटरों को क्रमबद्ध करें

  • res :=घरों की सरणी के समान आकार की एक सरणी, और इसे inf का उपयोग करके भरें

  • मेरे लिए 0 से लेकर घरों के आकार तक के लिए, करें

    • ज :=मकान[i]

    • ind :=हीटर में h डालने के लिए सबसे अधिक इंडेक्स छोड़ दिया ताकि सूची क्रमबद्ध बनी रहे

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

      • res[i] :=न्यूनतम रेस [i], |h - हीटर[-1]|

    • अन्यथा जब इंड 0 के समान हो, तब

      • रेस [i] :=न्यूनतम रेस [i], |h - हीटर[0]|

    • अन्यथा,

      • रेस [i]:=न्यूनतम रेस [i], | एच - हीटर [इंड] | , |h - हीटर[इंड-1]|

  • अधिकतम रेस वापस करें

उदाहरण

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

from bisect import bisect_left
class Solution:
   def findRadius(self, houses, heaters):
      houses.sort()
      heaters.sort()
      res = [float('inf')]*len(houses)
      for i in range(len(houses)):
         h = houses[i]
         ind = bisect_left(heaters, h)
         if ind==len(heaters):
            res[i] = min(res[i], abs(h - heaters[-1]))
         elif ind == 0:
            res[i] = min(res[i], abs(h - heaters[0]))
         else:
            res[i] = min(res[i], abs(h - heaters[ind]), abs(h - heaters[ind-1]))
      return max(res)

ob = Solution()
print(ob.findRadius([1,2,3,4],[1,4]))

इनपुट

[1,2,3,4],[1,4]

आउटपुट

1

  1. issuperset () पायथन में

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे। यह विधि बूलियन ट्रू लौटाती है यदि एक सेट बी के सभी तत्वों में सभी तत्व सेट ए होते हैं जो एक तर्क के रूप में पारित होते हैं और यदि ए के सभी तत्व बी में मौजूद नहीं होते हैं तो झूठा रिटर्न देता है। इस

  1. पायथन में अंडरस्कोर (_)

    पायथन में कुछ मामलों में हम सिंगल अंडरस्कोर (_) का उपयोग करते हैं और कुछ मामलों में हम डबल अंडरस्कोर (__) का उपयोग करते हैं। पायथन में निम्नलिखित मामले हैं, जहां हम अंडरस्कोर का उपयोग करते हैं। अगर हम दुभाषिए में लास्ट एक्सप्रेशन की वैल्यू स्टोर करना चाहते हैं। यदि हम कुछ मूल्यों को अनदेखा करना चा

  1. पायथन में क्विन

    क्विन एक प्रोग्राम है, जो कोई इनपुट नहीं लेता है, लेकिन यह आउटपुट का उत्पादन करता है। यह इसका अपना सोर्स कोड दिखाएगा। इसके अतिरिक्त, क्विन की कुछ शर्तें हैं। हम प्रोग्राम के अंदर सोर्स कोड फ़ाइल नहीं खोल सकते। उदाहरण कोड a=a=%r;print (a%%a);print (a%a) आउटपुट a=a=%r;print (a%%a);print (a%a) य