Java 数组中的差异最小

Java 数组中的差异最小,java,arrays,Java,Arrays,问题是: 你有许多已知重量w1,…,wn的石头。编写一个程序,将石头重新排列成两堆,使两堆之间的重量差最小 输入: 输入包含石头的数量n(1≤ N≤ 20) 石头的重量w1,…,wn(整数,1≤ wi≤ 100000)以空格分隔 输出: 输出一个数字,表示石堆之间可能存在的最小重量差 我在这个问题上下了工夫,并且已经写了代码,效果很好。但是我有几个测试用例失败(我没有测试用例,因为它是一个在线编译器),我无法找出我是否遗漏了与上述问题相关的内容。如果有人发现我的代码有错误,请帮忙。提前谢谢。我的

问题是: 你有许多已知重量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
更有效。感谢您的建议,并对给您带来的不便表示歉意。我们将继续遵循命名标准。除非您能够提供失败的测试用例,否则没有人能够帮助您。