完美世界笔试编程题AC一道
第一道题要计算的是最小漂流船,已知每艘船最多可以承载2人,但是重量不能超过limit,求最少需要多少船只?
第一行输入的是参与人员的体重数组,第二行输入的是漂流船承载的最大重量。求最小船只数?
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String[] str = sc.nextLine().split(" ");
int limit = Integer.parseInt(sc.nextLine());
int n = str.length;
int[] weight = new int[n];
for(int i=0;i<n;i++){
weight[i] = Integer.parseInt(str[i]);
}
Arrays.sort(weight);
System.out.println(minchip(weight,limit));
}
}
private static int minchip(int[] weight, int limit) {
int sum =0;
int i=0,j=weight.length-1;
while(i<=j){
if(weight[i]+weight[j]<=limit){
sum++;
i++;
j--;
}else{
sum++;
j--;
}
}
return sum;
}
}
第二道要计算主城之间的最小距离,应该是要用迪杰斯塔拉算法。时间不太够,没写出来。有大神AC出来的吗?