袜子网站建设规划书,玉林市网站建设,google海外推广,长春 万网 网站建设第 i 个人的体重为 people[i]#xff0c;每艘船可以承载的最大重量为 limit。
每艘船最多可同时载两人#xff0c;但条件是这些人的重量之和最多为 limit。
返回载到每一个人所需的最小船数。(保证每个人都能被船载)。 示例 1#xff1a;
输入#xff1a;people [1,2],…第 i 个人的体重为 people[i]每艘船可以承载的最大重量为 limit。
每艘船最多可同时载两人但条件是这些人的重量之和最多为 limit。
返回载到每一个人所需的最小船数。(保证每个人都能被船载)。 示例 1
输入people [1,2], limit 3 输出1 解释1 艘船载 (1, 2) 示例 2
输入people [3,2,2,1], limit 3 输出3 解释3 艘船分别载 (1, 2), (2) 和 (3) 示例 3
输入people [3,5,3,4], limit 5 输出4 解释4 艘船分别载 (3), (3), (4), (5) 提示
1 people.length 50000 1 people[i] limit 30000
思路先排个序
然后最大的找最小的如果小于等于limit就把两个都装进去要不然就装一个最大的
提交的代码
class Solution { public int numRescueBoats(int[] people, int limit) { Arrays.sort(people); int sum0,ipeople.length-1,j0; while(ij) { if(people[i]people[j]limit) { j; } i--; sum; } return sum; } }
完整的代码
import java.util.Arrays;
public class Solution881 { public static int numRescueBoats(int[] people, int limit) { Arrays.sort(people); int sum0,ipeople.length-1,j0; while(ij) { if(people[i]people[j]limit) { j; } i--; sum; } return sum; } public static void main(String[] args) { int[] people {2,49,10,7,11,41,47,2,22,6,13,12,33,18,10,26,2,6,50,10}; int x 50; System.out.println(numRescueBoats(people,x)); } }