重塑矩陣

在MATLAB中,有一個(gè)非常有用的函數(shù) reshape,它可以將一個(gè)矩陣重塑為另一個(gè)大小不同的新矩陣,但保留其原始數(shù)據(jù)。

給出一個(gè)由二維數(shù)組表示的矩陣,以及兩個(gè)正整數(shù)r和c,分別表示想要的重構(gòu)的矩陣的行數(shù)和列數(shù)。

重構(gòu)后的矩陣需要將原始矩陣的所有元素以相同的行遍歷順序填充。

如果具有給定參數(shù)的reshape操作是可行且合理的,則輸出新的重塑矩陣;否則,輸出原始矩陣。

示例 1:

輸入:
nums =
[[1,2],
[3,4]]
r = 1, c = 4
輸出:
[[1,2,3,4]]
解釋:
行遍歷nums的結(jié)果是 [1,2,3,4]。新的矩陣是 1 * 4 矩陣, 用之前的元素值一行一行填充新矩陣。

示例 2:

輸入:
nums =
[[1,2],
[3,4]]
r = 2, c = 4
輸出:
[[1,2],
[3,4]]
解釋:
沒(méi)有辦法將 2 * 2 矩陣轉(zhuǎn)化為 2 * 4 矩陣。 所以輸出原矩陣。

注意:

給定矩陣的寬和高范圍在 [1, 100]。
給定的 r 和 c 都是正數(shù)。

來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/reshape-the-matrix
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

class Solution {
    public int[][] matrixReshape(int[][] nums, int r, int c) {
        int row = nums.length;
        int column = nums[0].length;
        if(row * column != r * c)
            return nums;
        
        int count = 0;
        int k = -1;//計(jì)數(shù) 新的行
        int l = 0;//計(jì)數(shù) 新的列
        int[][] result = new int[r][c]; 
        for(int i = 0; i < row; i++){
            for(int j = 0; j < column; j++){
                if(count % c == 0){
                    k++;
                    l = 0;
                } else {
                    l++;
                }
                count++;
                result[k][l] = nums[i][j];
            }
        }
        
        return result;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目 難度:★☆☆☆☆類型:數(shù)組,幾何 在MATLAB中,有一個(gè)非常有用的函數(shù) reshape,它可以將一個(gè)矩陣重...
    玖月晴閱讀 1,016評(píng)論 0 0
  • 題目鏈接:https://leetcode.com/problems/reshape-the-matrix/ 原題...
    一只程序員閱讀 395評(píng)論 0 0
  • 把矩陣先轉(zhuǎn)換成一行,再根據(jù)行數(shù)、列數(shù)進(jìn)行轉(zhuǎn)換。復(fù)雜度有點(diǎn)高。 大佬實(shí)現(xiàn): 更簡(jiǎn)潔,直接定義一個(gè)滿足條件的空的 ve...
    不胖二十斤不改名zz閱讀 253評(píng)論 0 0
  • 先把代碼貼上來(lái)。 思路很樸素,首先判斷能不能轉(zhuǎn)換,不能轉(zhuǎn)換的話,就直接結(jié)束了。能轉(zhuǎn)換的話就是首先申請(qǐng)一個(gè)r維向量。...
    SunspotsInys閱讀 371評(píng)論 0 0
  • 基礎(chǔ)篇NumPy的主要對(duì)象是同種元素的多維數(shù)組。這是一個(gè)所有的元素都是一種類型、通過(guò)一個(gè)正整數(shù)元組索引的元素表格(...
    oyan99閱讀 5,299評(píng)論 0 18

友情鏈接更多精彩內(nèi)容