程式設計之美 set 14 小飛的電梯排程演算法

2021-09-06 14:02:14 字數 371 閱讀 8711

題目

電梯每次上公升只停一次, 求問電梯停在哪一樓能夠保證乘坐電梯的所有乘客爬樓層的層數之和最小思路

假設電梯的層數是 m, 乘客人數是 n

1. 列舉, 時間複雜度是 o(mn)

2. 滾動解法. 先對 n 名乘客排序, nlogn 然後移動游標, 時間複雜度為 o(nlogn)

假設電梯的層數是 n, 要去第 i 層的乘客數目為 tot[i]

1. 假設在第 i 層停時, 有 x 人向上爬, z 人不用爬, y 人向下走, 需要走的步數之和為 f,  在這個前提下, 電梯在 i+1 層停靠. 那麼 f' = f+x+z-y. x = x+z, y = y-tot[i+1]

在這種資料結構下, 時間複雜度將為 o(n) 

程式設計之美 小飛的電梯排程演算法

public class aptelevator person i 表示要到第i層的人數 elevator.opt person system.out.println elevator.targetfloor elevator.minstairs public aptelevator public ...

程式設計之美 小飛的電梯排程演算法

一.問題描述 亞洲微軟研究院所在的希格瑪大廈一共有6部電梯。在高峰時間,每層都有人上下,電梯每層都停。實習生小飛常常會被每層都停的電梯弄的很不耐煩,於是他提出了這樣乙個辦法 由於樓層並不算太高,那麼在繁忙的上下班時間,每次電梯從一層往上走時,我們只允許電梯停在其中的某一層。所有乘客從一樓上電梯,到達...

程式設計之美 1 8 小飛的電梯排程演算法

程式設計之美 1.8 小飛的電梯排程演算法 亞洲微軟研究院所在的希格瑪大廈一共有6部電梯。在高峰時間,每層都有人上下,電梯每層都停。實習生小飛常常會被每層都停的電梯弄的很不耐煩,於是他提出了這樣乙個辦法 由於樓層並不算太高,那麼在繁忙的上下班時間,每次電梯從一層往上走時,我們只允許電梯停在其中的某一...