我用很少的修改來解釋這個問題,這樣它就變得很容易解釋。覆蓋所有子陣列的最小集合
有ñ僱員,我需要安排他們在這樣的一個月的所有(或最多)員工可用於出遊的一天郊遊。
要求每位員工填寫在線調查,說明他的可用性,例如, 1-31或15-17等等。甚至有一天也可能無法使用。 我不得不爲整個員工安排的行程數量沒有限制(不考慮整個月沒有人可用),但我想找出最少的一組日期以涵蓋所有員工。所以在最壞的情況下,我將不得不安排旅行31次。
問題:什麼是我可以用來在這個數據結構上運行最佳擬合算法的最佳數據結構?解決這個問題最好的辦法是什麼?
通過最好的,當然我的意思是時間和空間有效的方式,但我也在尋找其他的選擇來解決這個問題。
我的思維方式是維持一個數組31個整數並初始化爲在每個員工的0.1運行,並根據他們的可用日期遞增數組索引。最後,對31的數組進行排序。最大值代表最大員工可用的日期。對左派員工應用相同的邏輯。但問題是要排除被遺漏的員工。爲此,我將不得不遍歷整個員工名單,以瞭解哪些員工可以被刪除,並形成一個新的員工名單,我可以應用先前的邏輯。根據我的說法,這樣兩次在列表中移除這些員工並不是最好的選擇。有任何想法嗎?
其中一個反例是:10名員工;在第一天,員工1-8可用,第二天 - 偶數的員工,第三天 - 有奇數的員工。第一天最大的列表是1-8,但最小的覆蓋範圍是{第二天,第三天}。 – deniss