Java 数组中的差异最小
问题是: 你有许多已知重量w1,…,wn的石头。编写一个程序,将石头重新排列成两堆,使两堆之间的重量差最小 输入: 输入包含石头的数量n(1≤ N≤ 20) 石头的重量w1,…,wn(整数,1≤ wi≤ 100000)以空格分隔 输出: 输出一个数字,表示石堆之间可能存在的最小重量差 我在这个问题上下了工夫,并且已经写了代码,效果很好。但是我有几个测试用例失败(我没有测试用例,因为它是一个在线编译器),我无法找出我是否遗漏了与上述问题相关的内容。如果有人发现我的代码有错误,请帮忙。提前谢谢。我的代码如下:Java 数组中的差异最小,java,arrays,Java,Arrays,问题是: 你有许多已知重量w1,…,wn的石头。编写一个程序,将石头重新排列成两堆,使两堆之间的重量差最小 输入: 输入包含石头的数量n(1≤ N≤ 20) 石头的重量w1,…,wn(整数,1≤ wi≤ 100000)以空格分隔 输出: 输出一个数字,表示石堆之间可能存在的最小重量差 我在这个问题上下了工夫,并且已经写了代码,效果很好。但是我有几个测试用例失败(我没有测试用例,因为它是一个在线编译器),我无法找出我是否遗漏了与上述问题相关的内容。如果有人发现我的代码有错误,请帮忙。提前谢谢。我的
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class stone {
public static void main(String[] args) {
int b1 = 1;
int q = 0;
List<Integer> l = new ArrayList<Integer>();
Scanner in = new Scanner(System.in);
System.out.println("enter no. of stones");
b1 = in.nextInt();
if (b1 >= 1 && b1 <= 20) {
int[] z = new int[b1];
System.out.println("enter the weights of the stones seperated by a space: ");
for (int i = 0; i < b1; i++) {
z[i] = in.nextInt();
}
if (z.length >= 1 && z.length <= 10000) {
for (int i = 0; i < z.length - 1; i++) {
q = Math.abs(z[i + 1] - z[i]);
l.add(q);
}
Collections.sort(l);
System.out.println(l.get(0));
}
}
in.close();
}
}
import java.util.ArrayList;
导入java.util.Collections;
导入java.util.List;
导入java.util.Scanner;
公共级石材{
公共静态void main(字符串[]args){
int b1=1;
int q=0;
列表l=新的ArrayList();
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入石头数量”);
b1=in.nextInt();
如果(b1>=1&&b1=1&&z.length请正确设置代码格式,并使用适当的变量名来强调您正在做的事情。在这里附议@barq——z
、l
和q
等名称完全没有信息性,使您的程序更难调试。numberList
可能比l
更有效。感谢您的建议,并对给您带来的不便表示歉意。我们将继续遵循命名标准。除非您能够提供失败的测试用例,否则没有人能够帮助您。