编程之美 1.8 小飞的电梯调度算法

扩展版:上楼消耗K,下楼消耗1

public class Test{
    public static void main(String[] args){ 
        int[] nums={0,0,3,2,5,3,4,5,1};
        int N=8;
        int N1=0;
        int N2=nums[1];
        int N3=0;
        int targetFloor=1;
        int minFloor=0;
        int K=2;
        for(int i=2;i<=N;i++){
            N3+=nums[i];
            minFloor+=nums[i]*(i-1)*K;
        }
        for(int i=2;i<=N;i++){
            if(N1+N2<N3*K){
                minFloor+=(N1+N2-N3*K);
                targetFloor=i;
                N1+=N2;
                N2=nums[i];
                N3-=nums[i];
            }else{
                break;
            }
        }
        System.out.println(targetFloor);
        System.out.println(minFloor);
    } 
}

 

posted @ 2018-03-16 18:06  xinyilovestudy  阅读(102)  评论(0编辑  收藏  举报