Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组中整数组合的算法_Java_Arrays_Arraylist_Multidimensional Array - Fatal编程技术网

Java 数组中整数组合的算法

Java 数组中整数组合的算法,java,arrays,arraylist,multidimensional-array,Java,Arrays,Arraylist,Multidimensional Array,我很难编写一个算法,从一个整数数组创建一个数组数组 喂,我有一个 int[] intArray = new int[] {1,2,3,4,5}; 我需要的是一个数组,数组的外观如下: int[][] array = new int[][]{ {-1,2,3,4,5}, {1,-2,3,4,5}, {1,2,-3,4,5}, {1,2,3,-4,5}, {1,2,3,4,-5}; 提前谢谢你 编辑: 如果我只想有一个负值,下面的代码适用于这种情

我很难编写一个算法,从一个整数数组创建一个数组数组

喂,我有一个

int[] intArray = new int[] {1,2,3,4,5};
我需要的是一个数组,数组的外观如下:

int[][] array = new int[][]{

    {-1,2,3,4,5},

    {1,-2,3,4,5},

    {1,2,-3,4,5},

    {1,2,3,-4,5},

    {1,2,3,4,-5};
提前谢谢你

编辑:
如果我只想有一个负值,下面的代码适用于这种情况。如果我想要2,3,4。。。负值?有没有办法让它更有活力?例如,从
{1,2,3,4,5}获取:
{-1,-2,3,4,5},{-1,2,-3,4,5},{-1,2,3,-4,5},{-1,2,3,4,5},{1-‌​2,-3,4,5},{1,-2,3,-4‌​,5} ,{1,-2,3,4,-5}
。。。‌​. 对于3个负值:
{-1,-2,-3,4,5},{-1,-2,3,-4,5},{-1,-2,3,4,-5},{1,-2,-3,-4,5},‌ ​{1,-2,-3,4,-5}, {1,2,‌​-3、-4、-5}
…等我希望你明白我的意思!再次感谢大家

怎么样

public class x
{
    public static int[][] convert(int in[])
    {
        int s = in.length;
        int out[][] = new int[s][s];

        for (int i = 0; i < s; ++i) {   // row loop
            for (int j = 0; j < s; ++j) {
                if (i == j)
                    out[i][j] = -in[j];
                else
                    out[i][j] = in[i];
            }
        }
        return out;
    }

    public static void print(int in[][])
    {
        for (int i = 0; i < in.length; ++i) {
            String sep = "";
            for (int j = 0; j < in[i].length; ++j) {
                System.out.print(sep + in[i][j]);
                sep = ", ";
            }
            System.out.println("");
        }
    }

    public static void main(String argv[])
    {
        int in[] = { 1, 2, 3, 4, 5 };
        int out[][];

        out = convert(in);
        print(out);
    }
}
公共类x
{
公共静态整数[]转换(整数在[]中)
{
int s=英寸长度;
int out[][]=新的int[s][s];
对于(int i=0;i
int[]intArray=新的int[]{1,2,3,4,5};
int algoIntArray[][]=新的int[intArray.length][intArray.length];
for(int i=0;i
此代码将为您工作

您可以尝试以下方法:

    int l = intArray.length;
    int[][] newArray = new int[l][l];

    for (int i = 0; i < l; i++) {
        for (int j = 0; j < l; j++) {
            newArray[i][j] = j == i ? intArray[j] * -1 : intArray[j];
        }
    }
intl=intArray.length;
int[]newArray=newint[l][l];
对于(int i=0;i

newArray
将具有您期望的值。

那么for循环和对角线上的一些工作?制作一个接收数组的方法并从那里开始如果我只想有一个负值,下面的代码适用于这种情况。如果我想要2,3,4。。。负值?有没有办法让它更有活力?例如,从
{1,2,3,4,5}得到:
{-1,-2,3,4,5},{-1,2,-3,4,5},{-1,2,3,4,5},{-1,2,3,4,-5},{1,-2,-3,4,5},{1,-2,3,5},{1,-2,3,4,5},{1,-2,3,4,4,-5}
。。。。或者对于三个负值:
{-1,-2,-3,4,5},{-1,-2,3,-4,5},{-1,-2,3,-5},{1,-2,-3,5},{1,-2,-3,4,-5},{1,2,-3,-4,-5}
等等,我希望你明白我的意思!再次感谢大家!!
    int l = intArray.length;
    int[][] newArray = new int[l][l];

    for (int i = 0; i < l; i++) {
        for (int j = 0; j < l; j++) {
            newArray[i][j] = j == i ? intArray[j] * -1 : intArray[j];
        }
    }