贪心算法-过河问题 pojo1700
过桥问题: 黑夜,只有一只手电筒 A过桥需要1s B过桥需要3s C过桥需要5s D过桥需要8s E过桥需要12s 求最小过桥时间 贪心算法: 从最大的开始过去,最小的两个做为辅助。 假如左岸人数为2:两个人直接过去,不需要回来,代价 假如左岸人数为3:由 辅助,代价 假如左岸人数大于3:将左岸最大两个人送到右岸,可以有两种方案: image.png 综上,此时 tips: 记得每次j-2。 代码如下: package my; import java.util.Arrays; import java.util.Scanner; public class Poj1700渡河 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t=sc.nextInt(); for(int i=0;i<t;i++) { int n = sc.nextInt(); int[]speed=new int[n]; for(int j=0;j<n;j++) { speed[j]=sc.nextInt(); } Arrays.sort(speed); int ans=f(n,speed); System.out.println(ans); } } public static int f(int n