第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 Java 中交換數(shù)組中的三元組

在 Java 中交換數(shù)組中的三元組

泛舟湖上清波郎朗 2023-03-31 09:33:06
我正在嘗試用 Java 實(shí)現(xiàn)以下過程。我有一個(gè)數(shù)組,其中每個(gè)元素都是一個(gè)三元組。例如:int [][] a = { {0,1,0},{1,2,1},{1,0,0},{0,2,0} };我想交換數(shù)組中的每個(gè)三元組(與右側(cè)的其他三元組)以獲得以下每個(gè)矩陣:b = { {1,2,1},{0,1,0},{1,0,0},{0,2,0} };c = { {1,0,0},{1,2,1},{0,1,0},{0,2,0} };d = { {0,2,0},{1,2,1},{1,0,0},{0,1,0} };e = { {0,1,0},{{1,0,0},{1,2,1},{0,2,0} };f = { {0,1,0},{0,2,0},{1,0,0},{1,2,1} };g = { {0,1,0},{1,2,1},{0,2,0},{1,0,0} };一般來說,對(duì)于 k 個(gè)三元組的矩陣,有 [(k*(k-1))/2] 種可能的交換。我該如何解決這個(gè)問題?
查看完整描述

1 回答

?
鴻蒙傳說

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

雙嵌套循環(huán)應(yīng)該在這里工作。請(qǐng)注意,您要求的輸出實(shí)際上是一個(gè) 3D 數(shù)組(2D 數(shù)組的數(shù)組):


public int[][] copy2DArray (int[][] input) {

    int[][] output = new int[input.length][];

    for (int r=0; r < input.length; ++r) {

        output[r] = new int[input[r].length];

        for (int c=0; c < input[0].length; ++c) {

            output[r][c] = input[r][c];

        }

    }


    return output;

}


public static void main(String[] args) {

    int [][] a = { {0,1,0},{1,2,1},{1,0,0},{0,2,0} };

    int numSwaps = a.length*(a.length-1) / 2;

    int[][][] result = new int[numSwaps][][];


    int counter = 0;

    for (int i=0; i < a.length-1; ++i) {

        for (int j=i+1; j < a.length; ++j) {

            result[counter] = copy2DArray(a);

            int[] temp = result[counter][j];

            result[counter][j] = result[counter][i];

            result[counter][i] = temp;

            ++counter;

        }

    }


    System.out.println(Arrays.deepToString(result));

}

這打?。?/p>


[

    [[1, 2, 1], [0, 1, 0], [1, 0, 0], [0, 2, 0]],

    [[1, 0, 0], [1, 2, 1], [0, 1, 0], [0, 2, 0]],

    [[0, 2, 0], [1, 2, 1], [1, 0, 0], [0, 1, 0]],

    [[0, 1, 0], [1, 0, 0], [1, 2, 1], [0, 2, 0]],

    [[0, 1, 0], [0, 2, 0], [1, 0, 0], [1, 2, 1]],

    [[0, 1, 0], [1, 2, 1], [0, 2, 0], [1, 0, 0]]

]

對(duì)于某些注釋,我過去使用的策略是使用兩級(jí)循環(huán)遍歷所有位置交換位置for。對(duì)于每個(gè)可能的交換,我們首先克隆您的輸入二維a數(shù)組。然后,我們?cè)谶x擇的任何位置交換各個(gè)一維數(shù)組。最后,我們將該交換數(shù)組添加到 3D 結(jié)果數(shù)組。我們也可以使用類似列表的東西來存儲(chǔ)交換的二維數(shù)組。


查看完整回答
反對(duì) 回復(fù) 2023-03-31
  • 1 回答
  • 0 關(guān)注
  • 105 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)