题目
有n个人,第i个人重量为wi,每艘船的最大载重量均为C,且最多只能载两个人。用最少的船装载所有人。
分析
采用贪心策略,在选择人时,不是选最重的就是选最轻的。这个题目先选一个最轻的,再选<=C的最重的
题解
package com.company.test5;
import java.util.Arrays;
public class Test4 {
public static void main(String[] args) {
int[] w={1,2,3,4,5,6,7,8,9,10};
Arrays.sort(w);
int n=w.length;
int c=10;
int left=0;
int right=n-1;
int cnt=0;//船的数量
while(left<right){
if(w[left]+w[right]>c){
right--;
cnt++;
}else{
left++;
right--;
cnt++;
}
}
if(left==right && w[left]<=c){
cnt++;
}
System.out.println(cnt);
}
}