gpt4 book ai didi

java - 车辆的最大利用率。从 2 个数组中查找最大值

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:39:42 26 4
gpt4 key购买 nike

我正在尝试解决一个简单的优化问题并提出了解决方案。只是想知道它是否正确。这是问题描述

有一种车辆可以行驶一定的最大距离,例如 3000 英里,之后需要维修。有 2 个数组,一个 outgoing 数组和一个 returning 数组。每个数组元素表示距离。我必须想出 2 个数字,一个来自 outgoing 数组,另一个来自 incoming 数组,以最大限度地利用车辆。说如果我可以使用总距离 3000,它是最好的或最接近它的。我已经为它编写了一个程序,并希望如果它是正确的或有缺陷的,我是否能得到其他人的意见。

public class Vehicle {
public static void main(String[] args) {
Integer[] outgoing = {2710,300,2500,2800,700};
Integer[] returning = {2200,289,490};
int l1=0,l2=0;
Arrays.sort(outgoing, Collections.reverseOrder());
Arrays.sort(returning);
int range = 3000;
int max = 0;
int out = 0;
int ret = 0;
while(l1<outgoing.length && l2<returning.length) {
int sum = outgoing[l1]+returning[l2];
if (sum<=range && sum>max) {
max = sum;
out = outgoing[l1];
ret = returning[l2];
}
if(sum>range) {
l1++;
} else {
l2++;
}
}
System.out.println(max);
System.out.println(out);
System.out.println(ret);
}
}

我采用的方法是将 outgoing 数组按相反顺序排序,并按自然顺序对 returning 数组进行排序。然后我尝试通过从每个数组中选择一个元素来找到可能的最大总和。如果临时总和超过允许的最大距离,我移动降序排列的数组指针,否则我移动升序排列的数组指针。

最佳答案

阅读你的描述我的理解是我们必须找到小于或等于 range 的两个整数的最大总和,并且一个整数取自 outgoing 数组,另一个取自 returning 数组。

最近我在HackerRank解决了类似的问题并写了一篇社论here .因此,您的方法类似于社论中描述的方法编号 - 3。所以,这是一个正确的做法。

关于java - 车辆的最大利用率。从 2 个数组中查找最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52918160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com