python - Best way of finding the number of people needed -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 4 जवाब
मेरे पास कुछ दैनिक डेटा है शुरुआती समय और एक कार्रवाई का समय समाप्त। प्रत्येक कार्रवाई के लिए एक व्यक्ति की आवश्यकता होती है मुझे यह जानना है कि मुझे कितने लोगों की आवश्यकता होगी
यहां डेटा का एक उदाहरण है (मैं अजगर का उपयोग कर रहा हूं):
[str (d.start) + "||" + str (d.end) दैनिक जॉब्स में घ के लिए] & gt; & gt; ['2013-08-09 07:30:00 || 2013-08-09 11:45:00 ',' 2013-08-09 07:25:00 || 2013-08-09 10:45:00 ',' 2013-08-09 07:35:00 || 2013-08-09 10:35:00 ',' 2013-08-09 09:35:00 || 2013-08-09 12:05:00 ',' 2013-08-09 10:15:00 || 2013-08-09 13:20:00 ',' 2013-08-09 09:15:00 || 2013-08-09 12:55:00 ',' 2013-08-09 12:35:00 || 2013-08-09 15:35:00 ',' 2013-08-09 13:05:00 || 2013-08-09 15:25:00 ',' 2013-08-09 17:10:00 || 2013-08-09 18:32:44 ']
इस समस्या का एक गैंट-चार्ट है:
हम देख सकते हैं कि 6 कार्य एक ही समय में किए जाएंगे। इसलिए हमें 6 व्यक्तियों की आवश्यकता होगी।
मेरा समाधान
मैं हर मिनट पर फिर से शुरू कर सकता हूं और उस समय की सीमाओं की जांच कर सकता हूं। अधिकतम संख्या न्यूनतम संख्या होगी व्यक्ति की जरूरत है
मैं इसे प्राप्त करने के लिए बेहतर एल्गोरिथम की तलाश कर रहा हूं।
मुझे यह देखने के लिए कि क्या यह ठीक है चलो एक गणना के साथ गैर-अतिव्यापी समय सीमा की एक आदेश सूची होना चाहिए। प्रारंभ में एल खाली है।
हर बार रेंज d में दैनिकजॉब्स, डी एल में कुछ समय सीमा के साथ ओवरलैप हो सकता है
उदाहरण के लिए:
एल: [सी] [सी] [सी] [सी] डी: []
परिणाम:
एल: [सी] [सी] [ C + 1] [c + 1] [c + 1] [c]
यह एल और डी स्ट्रीट मर्ज कर रहा है एल गैर-अतिव्यापी समय सीमा की एक आदेश सूची के रूप में जारी है। दैनिक जॉब्स में सभी घ के बाद, अधिकतम के लिए एल में प्रविष्टियों के माध्यम से चलें। गिनती।
बेशक, आप एक maxCount variable s.t. रख सकते हैं। एल और डी के प्रत्येक विलय में आप इस चर को अधिकतम संख्या रखते हैं s.t. आप अंतिम ओ (एन) स्कैन से बच सकते हैं।
Comments
Post a Comment