int controlElevator(int nPerson[], int nfloor, int upWeight){
int targetFloor = 1;
int minFloor = 0;
int N1 = 0;
int N2 = nPerson[1];
int N3 = 0;
int i = 0;
for(i = 2; i <= nfloor; i++){ //i表示大众意义上的第i层
N3 += nPerson[i];
minFloor += (nPerson[i] * (i - 1) * upWeight);
}
for(i = 2; i <= nfloor; i++){
if(N1 + N2 < N3 * upWeight){
minFloor += (N1 + N2 - N3 * upWeight);
N3 -= nPerson[i];
N1 += N2;
N2 = nPerson[i];
targetFloor = i;
}
else
break;
}
return minFloor;
// return targetFloor;
}
编程之美1.8 小飞的电梯调度算法
最新推荐文章于 2019-01-17 20:10:40 发布