编程之美 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); } }