leetcode的每日一題更新(Reshape the Matrix )

題目:給一個二維數(shù)組和兩個數(shù)字,返回一個二維數(shù)組,第一個數(shù)字代表返回的數(shù)組的行,第二個數(shù)字代表列。

思路:剛開始想邏輯想不明白,可能是想循環(huán)一下搞定,但是不行,只能在循環(huán)外面創(chuàng)建兩個變量來控制要返回的數(shù)組的接收,思路很清晰就是說不上來,直接附代碼:

public int[][] matrixReshape(int[][] nums, int r, int c) {
        if(nums==null)return null;
        if(nums.length*nums[0].length!=r*c)return nums;
        int[] tem=new int[nums.length*nums[0].length];
        int carry=0;
        int hang=0;
        int[][] result=new int[r][c];
        for(int i=0;i<nums.length;i++){
            for(int j=0;j<nums[0].length;j++){
                result[hang][carry]=nums[i][j];
                if(carry==c-1){
                    carry=0;
                    hang++;
                    continue;
                }
                carry++;
            }
        }
        return result;
    }

看看高手的解題方法:
和我的差不多,就是用了一些取巧的辦法:

public int[][] matrixReshape(int[][] nums, int r, int c) {
    int n = nums.length, m = nums[0].length;
    if (r*c != n*m) return nums;
    int[][] res = new int[r][c];
    for (int i=0;i<r*c;i++) 
        res[i/c][i%c] = nums[i/m][i%m];
    return res;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,734評論 18 399
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,112評論 25 709
  • 很多時候,就如一件很小的事情,真的就可以學(xué)到很多東西。 早上爬起來開始做早飯,剩下炒菜的時候已經(jīng)到7點...
    瀟湘妃子0514閱讀 760評論 0 0
  • 今天早上,我開始收拾自己的玩具,因為媽媽的同學(xué)要到我們家來。讓我意外的是盡然有一個和我差不多大的小朋友。 ...
    Cherry多多閱讀 290評論 1 0
  • 她在等 等四月的花開 等五月的跋涉 等六月的閃耀 等明年 等你 等她自己
    陌遙__閱讀 282評論 3 0

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