贪心算法小船过河问题Java
时间: 2023-11-21 12:56:05 浏览: 98
java贪心算法.md
以下是Java实现贪心算法解决小船过河问题的代码:
```java
import java.util.Arrays;
public class BoatCrossingRiver {
public static int minCrossTime(int[] nums) {
Arrays.sort(nums); // 对人数数组进行排序
int n = nums.length;
int i = 0, j = n - 1;
int time = 0;
while (i <= j) {
if (i == j) { // 只剩下一个人
time += nums[i];
break;
} else if (i + 1 == j) { // 只剩下两个人
time += nums[j];
break;
} else { // 剩下三个及以上的人
int t1 = nums[i] * 2 + nums[j] + nums[j - 1]; // 第一种方案
int t2 = nums[i] + nums[i + 1] * 2 + nums[j]; // 第二种方案
time += Math.min(t1, t2);
j -= 2;
i += 2;
}
}
return time;
}
public static void main(String[] args) {
int[] nums = {1, 2, 5, 10};
int minTime = minCrossTime(nums);
System.out.println("最短过河时间为:" + minTime);
}
}
```
阅读全文