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

पायथन का उपयोग करके अधिकतम जनसंख्या वाला वर्ष खोजने का प्रोग्राम


मान लीजिए हमारे पास दो कॉलम (जन्म, मृत्यु) वाली एक तालिका है जहां प्रत्येक पंक्ति ith व्यक्ति के जन्म और मृत्यु वर्ष का प्रतिनिधित्व करती है। किसी वर्ष y की जनसंख्या y के दौरान जीवित लोगों की संख्या है। ith व्यक्ति को वर्ष y की जनसंख्या में गिना जाता है जब y, [birth_i, death_i - 1] समावेशी रेंज में होता है। (व्यक्ति को उस वर्ष नहीं गिना जाता जब वे मरते हैं)। इसलिए, हमें अधिकतम जनसंख्या वाला सबसे पहला वर्ष ढूंढना है।

उदाहरण के लिए, यदि इनपुट इस तरह है:

जन्ममृत्यु
19702010
19602020
19401970

तो आउटपुट 1960 होगा क्योंकि 1960 में अधिकतम जनसंख्या है।

हल करने के चरण

  • d := एक मैप, जहां यदि कोई कुंजी नहीं मिलती है, तो 0 वापस करें

  • res := दो आइटम वाली सूची [2051, 0]

  • मैट्रिक्स में प्रत्येक जन्म वर्ष YOB, और मृत्यु वर्ष YOD के लिए, करें

    • year को YOB से YOD तक की रेंज में लिए करें

      • d[year] := d[year] + 1

      • यदि d[year] >= res[1], तो

        • यदि d[year] > res[1], तो

          • res := दो तत्वों वाली सूची [year, d[year]]

        • अन्यथा,

          • res := दो तत्वों वाली सूची [year और res[0] का न्यूनतम, res[1]]

  • res[0] वापस करें

उदाहरण

from collections import defaultdict
def solve(matrix):
    d = defaultdict(int)
    res = [2051, 0]
    for YOB, YOD in matrix:
        for year in range(YOB, YOD):
            d[year] += 1
            if d[year] >= res[1]:
                if d[year] > res[1]:
                    res = [year, d[year]]
                else:
                    res = [min(year, res[0]), res[1]]
    return res[0]

matrix = [[1970,2010],[1960,2020],[1940,1970]]
print(solve(matrix))

इनपुट

[[1970,2010],[1960,2020],[1940,1970]]

आउटपुट

1960
  1. - Python प्रोग्राम - k रिबन की समान लंबाई की अधिकतम लंबाई खोजें

    सकारात्मक संख्याओं की सूची दी गई है जो रिबन की लंबाई दर्शाती है, और एक मान k। हम रिबन को जितनी बार चाहें काट सकते हैं, हमें सबसे बड़ी लंबाई r खोजनी है जिससे हम k रिबन लंबाई r के प्राप्त कर सकें। यदि ऐसा समाधान नहीं मिलता, तो -1 लौटाएं। उदाहरण इनपुट: ribbons = [1, 2, 5, 7, 15], k = 5 आउटपुट: 5 व्याख

  1. Python में इमारतों की अधिकतम ऊंचाई ज्ञात करें Python में इमारतों की अधिकतम ऊंचाई ज्ञात करें

    n इमारतें एक पंक्ति में (1 से n लेबल)। प्रतिबंध: restrictions[i] = (id, max_height)। नियम: ऊंचाई ≥ 0, पहली इमारत की ऊंचाई = 0, आसन्न इमारतों में ऊंचाई अंतर ≤ 1। अधिकतम संभव ऊंचाई खोजें। एल्गोरिदम: दो पास + शिखर गणना प्रतिबंधों को id द्वारा सॉर्ट करें फॉरवर्ड पास: बाएं से दाएं, प्रत्येक प्रतिबंध को

  1. पायथन का उपयोग करके अधिकतम संभावना वाले पथ को खोजने का प्रोग्राम पायथन का उपयोग करके अधिकतम संभावना वाले पथ को खोजने का प्रोग्राम

    मान लीजिए हमारे पास n नोड्स वाला एक अनिर्देशित भारित ग्राफ है (नोड्स 0 से क्रमांकित हैं)। यह ग्राफ एज लिस्ट के रूप में दिया गया है, प्रत्येक एज e के लिए, उस एज को पार करने की सफलता की संभावना probability[e] है। हमारे पास प्रारंभ और अंत नोड्स भी हैं, हमें प्रारंभ से अंत तक जाने के लिए अधिकतम सफलता स