国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣

這篇具有很好參考價(jià)值的文章主要介紹了【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

廢話不多說(shuō),喊一句號(hào)子鼓勵(lì)自己:程序員永不失業(yè),程序員走向架構(gòu)!本篇Blog的主題是螺旋矩陣,使用【二維數(shù)組】這個(gè)基本的數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)
【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣,# 數(shù)組,算法,矩陣,java

螺旋矩陣【EASY】

二維數(shù)組的結(jié)構(gòu)特性入手

題干

【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣,# 數(shù)組,算法,矩陣,java

解題思路

根據(jù)題目示例 matrix = [[1,2,3],[4,5,6],[7,8,9]] 的對(duì)應(yīng)輸出 [1,2,3,6,9,8,7,4,5] 可以發(fā)現(xiàn),順時(shí)針打印矩陣的順序是 “從左向右、從上向下、從右向左、從下向上” 循環(huán)。
【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣,# 數(shù)組,算法,矩陣,java

因此,考慮設(shè)定矩陣的 “左、上、右、下” 四個(gè)邊界,模擬以上矩陣遍歷順序,算法流程:

  1. 空值處理: 當(dāng) matrix 為空時(shí),直接返回空列表 [] 即可。
  2. 初始化: 矩陣 左、右、上、下 四個(gè)邊界 l , r , t , b ,用于打印的結(jié)果列表 res 。
  3. 循環(huán)打印: “從左向右、從上向下、從右向左、從下向上” 四個(gè)方向循環(huán)打印。
    • 根據(jù)邊界打印,即將元素按順序添加至列表 res 尾部。
    • 邊界向內(nèi)收縮 1 (代表已被打?。?。
    • ** 判斷邊界是否相遇**(是否打印完畢),若打印完畢代表下一個(gè)方向無(wú)需打印,則跳出。
  4. 返回值: 返回 res 即可

【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣,# 數(shù)組,算法,矩陣,java
整體的打印過(guò)程
【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣,# 數(shù)組,算法,矩陣,java

代碼實(shí)現(xiàn)

基本數(shù)據(jù)結(jié)構(gòu)數(shù)組
輔助數(shù)據(jù)結(jié)構(gòu)無(wú)
算法無(wú)
技巧無(wú)

import java.util.*;


public class Solution {
    /**
     * 代碼中的類(lèi)名、方法名、參數(shù)名已經(jīng)指定,請(qǐng)勿修改,直接返回方法規(guī)定的值即可
     *
     *
     * @param matrix int整型二維數(shù)組
     * @return int整型ArrayList
     */
    public ArrayList<Integer> spiralOrder (int[][] matrix) {
        // 1 入?yún)⑴袛?,如果為空?shù)組,返回空集合
        if (matrix.length < 1) {
            return new ArrayList<Integer>();
        }

        // 2 定義四條邊及返回值
        ArrayList<Integer> result = new ArrayList<Integer>();
        int left = 0;
        int right = matrix[0].length - 1;
        int top = 0;
        int bottom = matrix.length - 1;

        // 3 循環(huán)打印四條邊
        while (true) {
            // 3-1 從左向右打印,明確左右邊界,打印完后上邊界向下移動(dòng),并判斷是否有必要繼續(xù)從上到下打印
            for (int i = left; i <= right; i++) {
                result.add(matrix[top][i]);
            }
            if (++top > bottom) {
                break;
            }

            // 3-2 從上向下打印,明確上下邊界,打印完后右邊界向左移動(dòng),并判斷是否有必要繼續(xù)從右到左打印
            for (int i = top; i <= bottom; i++) {
                result.add(matrix[i][right]);
            }
            if (left > --right) {
                break;
            }

            // 3-3 從右向左打印,明確左右邊界,打印完后下邊界向上移動(dòng),并判斷是否有必要繼續(xù)從下到上打印
            for (int i = right; i >= left; i--) {
                result.add(matrix[bottom][i]);
            }
            if (top > --bottom) {
                break;
            }

            // 3-4 從下向上打印,明確上下邊界,打印完后左邊界向右移動(dòng),并判斷是否有必要繼續(xù)從左到右打印
            for (int i = bottom; i >= top; i--) {
                result.add(matrix[i][left]);
            }
            if (++left > right) {
                break;
            }
        }

        return result;
    }
}

++top > bottom 等價(jià)于先給 top 自增 1 ,再判斷++top > bottom 邏輯表達(dá)式

復(fù)雜度分析

  • 時(shí)間復(fù)雜度 O(MN) : M,N分別為矩陣行數(shù)和列數(shù)。
  • 空間復(fù)雜度 O(1) : 四個(gè)邊界 l , r , t , b 使用常數(shù)大小的額外空間。

旋轉(zhuǎn)圖像

和螺旋矩陣類(lèi)似,也是對(duì)一圈數(shù)值做處理

題干

【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣,# 數(shù)組,算法,矩陣,java

解題思路

由原題知整體的旋轉(zhuǎn)公式如下:
【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣,# 數(shù)組,算法,矩陣,java
如果可以使用輔助矩陣則按如下方式修改即可:

class Solution {
    public void rotate(int[][] matrix) {
        int n = matrix.length;
        // 深拷貝 matrix -> tmp
        int[][] tmp = new int[n][];
        for (int i = 0; i < n; i++)
            tmp[i] = matrix[i].clone();
        // 根據(jù)元素旋轉(zhuǎn)公式,遍歷修改原矩陣 matrix 的各元素
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                matrix[j][n - 1 - i] = tmp[i][j];
            }
        }
    }
}

考慮不借助輔助矩陣,通過(guò)在原矩陣中直接「原地修改」,實(shí)現(xiàn)空間復(fù)雜度 **O(1)**的解法。以位于矩陣四個(gè)角點(diǎn)的元素為例,設(shè)矩陣左上角元素 A 、右上角元素 B 、右下角元素 C 、左下角元素 D 。矩陣旋轉(zhuǎn) 90o 后,相當(dāng)于依次先后執(zhí)行 D→A,C→D, B→C, A→B 修改元素,即如下「首尾相接」的元素旋轉(zhuǎn)操作:
【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣,# 數(shù)組,算法,矩陣,java
如上圖所示,由于第 1 步 D→A已經(jīng)將 A覆蓋(導(dǎo)致 A 丟失),此丟失導(dǎo)致最后第 4步 A→B無(wú)法賦值。為解決此問(wèn)題,考慮借助一個(gè)「輔助變量 tmp」預(yù)先存儲(chǔ) A ,此時(shí)的旋轉(zhuǎn)操作變?yōu)椋?br>【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣,# 數(shù)組,算法,矩陣,java
如上圖所示,一輪可以完成矩陣 4 個(gè)元素的旋轉(zhuǎn)。因而,只要分別以矩陣左上角 1/4的各元素為起始點(diǎn)執(zhí)行以上旋轉(zhuǎn)操作,
【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣,# 數(shù)組,算法,矩陣,java

將這些元素旋轉(zhuǎn)完成即完成了整個(gè)數(shù)組的旋轉(zhuǎn)
【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣,# 數(shù)組,算法,矩陣,java
具體來(lái)看,當(dāng)矩陣大小n為偶數(shù)時(shí),行列均取前n/2,當(dāng)矩陣大小為奇數(shù)時(shí),行取n/2,列?。╪+1)/2,因?yàn)闉槠鏀?shù)時(shí),中間的元素不需要旋轉(zhuǎn)

代碼實(shí)現(xiàn)

基本數(shù)據(jù)結(jié)構(gòu)數(shù)組
輔助數(shù)據(jù)結(jié)構(gòu)無(wú)
算法無(wú)
技巧無(wú)

class Solution {
    public void rotate(int[][] matrix) {
        // 1 獲取數(shù)組長(zhǎng)度,依據(jù)替換順序位置matrix[i][j]->matrix[j][n-1-i]推導(dǎo)出ABCD位置
        int n = matrix.length;
        //int a=matrix[i][j];int b=matrix[j][n-1-i];int c=matrix[n-1-i][n-1-j];int d=matrix[n-1-j][i];

        // 2 遍歷行列,行取n/2,列?。╪+1)/2 為了應(yīng)對(duì)奇數(shù)長(zhǎng)度的n
        for (int i = 0; i < n / 2; i++) {
            for (int j = 0; j < (n + 1) / 2; j++) {
                // 2-1 暫存A的位置,用來(lái)后續(xù)替換B
                int temp = matrix[i][j];
                // 2-2 D替換A
                matrix[i][j] = matrix[n - 1 - j][i];
                // 2-3 C替換D
                matrix[n - 1 - j][i] = matrix[n - 1 - i][n - 1 - j];
                // 2-4 B替換C
                matrix[n - 1 - i][n - 1 - j] = matrix[j][n - 1 - i];
                // 2-5 A替換B
                matrix[j][n - 1 - i] = temp;
            }
        }

    }
}

復(fù)雜度分析

時(shí)間復(fù)雜度 O(N*N): 其中 N 為輸入矩陣的行(列)數(shù)。需要將矩陣中每個(gè)元素旋轉(zhuǎn)到新的位置,即對(duì)矩陣所有元素操作一次,使用O(N*N)的時(shí)間
空間復(fù)雜度 O(1) : 臨時(shí)變量 tmp使用常數(shù)大小的額外空間。值得注意,當(dāng)循環(huán)中進(jìn)入下輪迭代,上輪迭代初始化的 tmp占用的內(nèi)存就會(huì)被自動(dòng)釋放,因此無(wú)累計(jì)使用空間。

搜索二維矩陣【MID】

從下題矩陣的特性入手進(jìn)行查找
【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣,# 數(shù)組,算法,矩陣,java

題干

【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣,# 數(shù)組,算法,矩陣,java

解題思路

數(shù)組從左到右和從上到下都是升序的,如果從右上角出發(fā)開(kāi)始遍歷呢?會(huì)發(fā)現(xiàn)每次都是向左數(shù)字會(huì)變小,向下數(shù)字會(huì)變大,有點(diǎn)和二分查找樹(shù)相似。二分查找樹(shù)的話,是向左數(shù)字變小,向右數(shù)字變大。所以我們可以把 target 和當(dāng)前值比較。

  • 如果 target 的值大于當(dāng)前值,那么就向下走。
  • 如果 target 的值小于當(dāng)前值,那么就向左走。
  • 如果相等的話,直接返回 true 。

也可以換個(gè)角度思考

  • 如果 target 的值大于當(dāng)前值,也就意味著當(dāng)前值所在的行肯定不會(huì)存在 target 了,可以把當(dāng)前行去掉,從新的右上角的值開(kāi)始遍歷。
  • 如果 target 的值小于當(dāng)前值,也就意味著當(dāng)前值所在的列肯定不會(huì)存在 target 了,可以把當(dāng)前列去掉,從新的右上角的值開(kāi)始遍歷。

看下邊的例子

[1,   4,  7, 11, 15],
[2,   5,  8, 12, 19],
[3,   6,  9, 16, 22],
[10, 13, 14, 17, 24],
[18, 21, 23, 26, 30]

如果 target  = 9,如果我們從 15 開(kāi)始遍歷, cur = 15
    
target < 15, 去掉當(dāng)前列, cur = 11
[1,   4,  7, 11],
[2,   5,  8, 12],
[3,   6,  9, 16],
[10, 13, 14, 17],
[18, 21, 23, 26]    
    
target < 11, 去掉當(dāng)前列, cur = 7  
[1,   4,  7],
[2,   5,  8],
[3,   6,  9],
[10, 13, 14],
[18, 21, 23]     

target > 7, 去掉當(dāng)前行, cur = 8   
[2,   5,  8],
[3,   6,  9],
[10, 13, 14],
[18, 21, 23]       

target > 8, 去掉當(dāng)前行, cur = 9, 遍歷結(jié)束    
[3,   6,  9],
[10, 13, 14],
[18, 21, 23]   

代碼實(shí)現(xiàn)

基本數(shù)據(jù)結(jié)構(gòu)數(shù)組
輔助數(shù)據(jù)結(jié)構(gòu)無(wú)
算法無(wú)
技巧無(wú)

import java.util.*;


public class Solution {
    /**
     * 代碼中的類(lèi)名、方法名、參數(shù)名已經(jīng)指定,請(qǐng)勿修改,直接返回方法規(guī)定的值即可
     *
     *
     * @param target int整型
     * @param array int整型二維數(shù)組
     * @return bool布爾型
     */
    public boolean Find (int target, int[][] array) {
        // 1 入?yún)⑴袛?/span>
        if (array.length < 1) {
            return false;
        }
        // 2 定義行列邊界,從右上角出發(fā),所以初始化為右上角位置
        int right = array[0].length - 1;
        int top = 0;

        // 3 出發(fā)開(kāi)始遍歷,明確左右邊界的范圍
        while (right >= 0 && top <= array.length - 1) {
            int curValue = array[top][right];
            if (curValue > target) {
                // 3-1 如果當(dāng)前值大于目標(biāo)值,舍棄本列
                right--;
            } else if (curValue < target) {
                // 3-2 如果當(dāng)前值小于目標(biāo)值,舍棄本行
                top++;
            } else {
                // 3-3 如果當(dāng)前值等于目標(biāo)值,找到了目標(biāo)值
                return true;
            }

        }
        return false;
    }
}

復(fù)雜度分析

  • 時(shí)間復(fù)雜度 O(M+N) : 只遍歷了一遍
  • 空間復(fù)雜度 O(1) :沒(méi)有使用額外空間。

拓展知識(shí):二維數(shù)組

二維數(shù)組是一種常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),它由多行和多列組成,可以用來(lái)存儲(chǔ)和處理二維數(shù)據(jù)集合,例如矩陣、表格、圖像、地圖等。在不同的編程語(yǔ)言中,定義和使用二維數(shù)組的方式可能有所不同,以下是一些常見(jiàn)編程語(yǔ)言中的示例。

C/C++:

// 定義一個(gè)3x3的整數(shù)二維數(shù)組
int matrix[3][3] = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

// 訪問(wèn)元素
int element = matrix[1][2]; // 獲取第二行第三列的元素,值為6

Python:

# 定義一個(gè)3x3的整數(shù)二維數(shù)組(使用嵌套列表)
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 訪問(wèn)元素
element = matrix[1][2] # 獲取第二行第三列的元素,值為6

Java:

// 定義一個(gè)3x3的整數(shù)二維數(shù)組
int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

// 訪問(wèn)元素
int element = matrix[1][2]; // 獲取第二行第三列的元素,值為6

常用方法和操作:

  1. 訪問(wèn)元素: 使用索引來(lái)訪問(wèn)二維數(shù)組中的特定元素,例如 matrix[i][j],其中 i 表示行號(hào),j 表示列號(hào)。

  2. 遍歷二維數(shù)組: 使用嵌套循環(huán)來(lái)遍歷二維數(shù)組,通常使用一個(gè)循環(huán)迭代行,另一個(gè)循環(huán)迭代列,以訪問(wèn)所有元素。

  3. 初始化: 在定義二維數(shù)組時(shí),可以初始化數(shù)組的值。可以使用嵌套列表(Python)、嵌套數(shù)組(C/C++)或類(lèi)似方式來(lái)初始化。

  4. 修改元素: 可以通過(guò)索引來(lái)修改特定元素的值,例如 matrix[i][j] = newValue。

  5. 獲取數(shù)組的行數(shù)和列數(shù): 可以使用數(shù)組的長(zhǎng)度或大小來(lái)獲取行數(shù)和列數(shù)。

  6. 在算法中使用: 二維數(shù)組在解決各種問(wèn)題時(shí)非常有用,例如矩陣運(yùn)算圖算法、迷宮求解等。

  7. 釋放內(nèi)存(C/C++): 在使用動(dòng)態(tài)分配內(nèi)存創(chuàng)建二維數(shù)組時(shí),需要謹(jǐn)慎釋放內(nèi)存以防止內(nèi)存泄漏。

二維數(shù)組是一種非常靈活和強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),可以在各種應(yīng)用中發(fā)揮作用,從簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)到復(fù)雜的算法實(shí)現(xiàn)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-735390.html

到了這里,關(guān)于【算法訓(xùn)練-數(shù)組 三】【數(shù)組矩陣】螺旋矩陣、旋轉(zhuǎn)圖像、搜索二維矩陣的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C語(yǔ)言例題(二維數(shù)組)【轉(zhuǎn)置矩陣】【成績(jī)登記】【斐波那契】【簡(jiǎn)單矩陣查找】【螺旋數(shù)陣】【一維數(shù)組轉(zhuǎn)二維數(shù)組】

    C語(yǔ)言例題(二維數(shù)組)【轉(zhuǎn)置矩陣】【成績(jī)登記】【斐波那契】【簡(jiǎn)單矩陣查找】【螺旋數(shù)陣】【一維數(shù)組轉(zhuǎn)二維數(shù)組】

    例一:轉(zhuǎn)置矩陣 程序: 輸出:通過(guò)b[j][i] = a[i][j];這一步實(shí)現(xiàn)了轉(zhuǎn)置 進(jìn)階:用6個(gè)1~20內(nèi)的隨機(jī)數(shù)按行的順序生成一個(gè)a[2][3]的矩陣,并輸出它的轉(zhuǎn)置矩陣 輸出: 例2.登記某班三人的數(shù)學(xué)、英語(yǔ)兩門(mén)課程的成績(jī)。 分析:此類(lèi)問(wèn)題可以通過(guò)使用3個(gè)一維數(shù)組來(lái)解決,也可以通過(guò)使用

    2024年02月03日
    瀏覽(32)
  • 算法刷題-數(shù)組-螺旋矩陣

    算法刷題-數(shù)組-螺旋矩陣

    力扣題目鏈接 給定一個(gè)正整數(shù) n,生成一個(gè)包含 1 到 n^2 所有元素,且元素按順時(shí)針順序螺旋排列的正方形矩陣。 示例: 輸入: 3 輸出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 這道題目可以說(shuō)在面試中出現(xiàn)頻率較高的題目, 本題并不涉及到什么算法,就是模擬過(guò)程,但卻十分考察對(duì)代

    2024年02月08日
    瀏覽(17)
  • LeetCode-74. 搜索二維矩陣【數(shù)組 二分查找 矩陣】

    LeetCode-74. 搜索二維矩陣【數(shù)組 二分查找 矩陣】

    給你一個(gè)滿足下述兩條屬性的 m x n 整數(shù)矩陣: 每行中的整數(shù)從左到右按非嚴(yán)格遞增順序排列。 每行的第一個(gè)整數(shù)大于前一行的最后一個(gè)整數(shù)。 給你一個(gè)整數(shù) target ,如果 target 在矩陣中,返回 true ;否則,返回 false 。 示例 1: 輸入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]],

    2024年04月14日
    瀏覽(24)
  • 【經(jīng)典LeetCode算法題目專欄分類(lèi)】【第6期】二分查找系列:x的平方根、有效完全平方數(shù)、搜索二位矩陣、尋找旋轉(zhuǎn)排序數(shù)組最小值

    【經(jīng)典LeetCode算法題目專欄分類(lèi)】【第6期】二分查找系列:x的平方根、有效完全平方數(shù)、搜索二位矩陣、尋找旋轉(zhuǎn)排序數(shù)組最小值

    《博主簡(jiǎn)介》 小伙伴們好,我是阿旭。專注于人工智能AI、python、計(jì)算機(jī)視覺(jué)相關(guān)分享研究。 ? 更多學(xué)習(xí)資源,可關(guān)注公-仲-hao:【阿旭算法與機(jī)器學(xué)習(xí)】,共同學(xué)習(xí)交流~ ?? 感謝小伙伴 們點(diǎn)贊、關(guān)注! class ? Solution : ???? def ? mySqrt ( self , ?x : ? int ) ? - ? int : ??????

    2024年02月04日
    瀏覽(31)
  • 算法-有序數(shù)組的平方,長(zhǎng)度最小的子數(shù)組,螺旋矩陣II

    算法-有序數(shù)組的平方,長(zhǎng)度最小的子數(shù)組,螺旋矩陣II

    偽裝成一個(gè)老手! 題目 給你一個(gè)按 非遞減順序 排序的整數(shù)數(shù)組 nums,返回每個(gè)數(shù)字的平方組成的新數(shù)組,要求也按非遞減順序排序。 示例 : 輸入:nums = [-4,-1,0,3,10] 輸出:[0,1,9,16,100] 解釋:平方后,數(shù)組變?yōu)?[16,1,0,9,100] 排序后,數(shù)組變?yōu)?[0,1,9,16,100] 來(lái)源:力扣977 思路 遍

    2024年02月11日
    瀏覽(27)
  • LeetCode-48. 旋轉(zhuǎn)圖像【數(shù)組 數(shù)學(xué) 矩陣】

    LeetCode-48. 旋轉(zhuǎn)圖像【數(shù)組 數(shù)學(xué) 矩陣】

    給定一個(gè) n × n 的二維矩陣 matrix 表示一個(gè)圖像。請(qǐng)你將圖像順時(shí)針旋轉(zhuǎn) 90 度。 你必須在 原地 旋轉(zhuǎn)圖像,這意味著你需要直接修改輸入的二維矩陣。請(qǐng)不要 使用另一個(gè)矩陣來(lái)旋轉(zhuǎn)圖像。 示例 1: 輸入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 輸出:[[7,4,1],[8,5,2],[9,6,3]] 示例 2: 輸入:m

    2024年04月27日
    瀏覽(24)
  • 【算法訓(xùn)練-數(shù)組 五】【二分查找】:旋轉(zhuǎn)排序數(shù)組的最小數(shù)字、旋轉(zhuǎn)排序數(shù)組的指定數(shù)字

    【算法訓(xùn)練-數(shù)組 五】【二分查找】:旋轉(zhuǎn)排序數(shù)組的最小數(shù)字、旋轉(zhuǎn)排序數(shù)組的指定數(shù)字

    廢話不多說(shuō),喊一句號(hào)子鼓勵(lì)自己:程序員永不失業(yè),程序員走向架構(gòu)!本篇Blog的主題是【數(shù)組的二分查找】,使用【數(shù)組】這個(gè)基本的數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn),這個(gè)高頻題的站點(diǎn)是: CodeTop ,篩選條件為: 目標(biāo)公司+最近一年+出現(xiàn)頻率排序 ,由高到低的去 ??蚑OP101 去找,只有兩

    2024年02月09日
    瀏覽(20)
  • 【算法Hot100系列】搜索旋轉(zhuǎn)排序數(shù)組

    【算法Hot100系列】搜索旋轉(zhuǎn)排序數(shù)組

    ??????歡迎來(lái)到我的博客,很高興能夠在這里和您見(jiàn)面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識(shí),也可以暢所欲言、分享您的想法和見(jiàn)解。 推薦:kwan 的首頁(yè),持續(xù)學(xué)習(xí),不斷總結(jié),共同進(jìn)步,活到老學(xué)到老 導(dǎo)航 檀越劍指大廠系列:全面總

    2024年01月21日
    瀏覽(25)
  • C/C++每日一練(20230221) 格雷編碼、矩陣問(wèn)題、搜索旋轉(zhuǎn)排序數(shù)組II

    C/C++每日一練(20230221) 格雷編碼、矩陣問(wèn)題、搜索旋轉(zhuǎn)排序數(shù)組II

    目錄 1. 格雷編碼 2. 矩陣問(wèn)題 3. 搜索旋轉(zhuǎn)排序數(shù)組 II 格雷編碼是一個(gè)二進(jìn)制數(shù)字系統(tǒng),在該系統(tǒng)中,兩個(gè)連續(xù)的數(shù)值僅有一個(gè)位數(shù)的差異。 給定一個(gè)代表編碼總位數(shù)的非負(fù)整數(shù) ?n ,打印其格雷編碼序列。即使有多個(gè)不同答案,你也只需要返回其中一種。 格雷編碼序列必須

    2024年02月16日
    瀏覽(23)
  • 螺旋矩陣、旋轉(zhuǎn)矩陣、矩陣Z字打印

    螺旋矩陣、旋轉(zhuǎn)矩陣、矩陣Z字打印

    類(lèi)似于這個(gè)螺旋矩陣我們也是在每次處理最外層的矩形,然后往內(nèi)收縮。 對(duì)于一個(gè)矩形我們選取四個(gè)點(diǎn)依次進(jìn)行交換即可 也是和螺旋矩陣類(lèi)似選取兩個(gè)點(diǎn)進(jìn)行循環(huán)

    2024年02月10日
    瀏覽(17)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包