Ես ունեմ ալգորիթմ, որը ստեղծում է երկու կույտ՝ minHeap և maxHeap: Այս երկուսի միջև միակ տարբերությունն այն է, որ maxHeap-ը հակադարձում է minHeap-ի նշանը՝ պարզ հաքեր՝ Python-ի heapq տվյալների կառուցվածքը որպես առավելագույն կույտ օգտագործելու համար: Ահա կույտեր ստեղծելու իմ կոդը (կույտային ստեղնը հիմնականում բառարանում աշխատողների թիվն է շաբաթվա տվյալ օրվա համար).
for day in self.weekDict:
if day != 'Saturday' and len(self.weekDict[day]) != 0: #saturdays and holidays not part of optimization
heapq.heappush(minHeap, (len(self.weekDict[day]), day))
heapq.heappush(maxHeap, (-len(self.weekDict[day]), day))
MinHeap-ն աշխատում է ճիշտ այնպես, ինչպես և սպասվում էր, բայց առավելագույն կույտը ինձ տարօրինակ պահվածք է տալիս, երբ նույն բանալիները մեկից ավելի են: Տես ներքեւում:
[(-8, 'Thursday'), (-7, 'Monday'), (-5, 'Friday'), (-7, 'Wednesday'), (-7, 'Tuesday')]
Ինչո՞ւ են վերջին երկու օրերը շարքից դուրս եկել. Արդյո՞ք դա այն պատճառով է, որ միայն առաջին օրն է երաշխավորված նվազագույնը, և երբ ես բաց թողնեմ առաջին օրը, կույտը ինքնաբերաբար կկարգավորվի: