用Java这样试试 public static int maxCars(int[] capacity, int[] nums, int k) { int n = capacity.length; int[][] cars = new int[n][2]; for (int i = 0; i < n; i++) { cars[i][0] = capacity[i]; cars[i][1] = nums[i]; } Arrays.sort(cars, (a, b) -> a[0] - b[0]); // 按照最大载客量从小到大排序 int count = 0, idx = 0; while (idx < n && k > 0) { // 还有人等待且还有车可用 int passengers = Math.min(k, cars[idx][0] - cars[idx][1]); // 尽量安排多的乘客 cars[idx][1] += passengers; k -= passengers; if (cars[idx][1] == cars[idx][0]) { // 这辆车已经满载 count++; idx++; } } return count; }

相关推荐

做人要有梦想dji:最新工位查看图片
点赞 评论 收藏
分享
牛客网
牛客企业服务