螺旋矩陣

image.png

image.png

要點:

  1. 4層循環(huán):
    i. 第一次從左->右
    ii. 第二次從上->下
    iii. 第三次從右->左
    xi. 第四次從下到上
vector<int> spiralOrder(vector<vector<int>>& matrix)
{
    vector<vector<int>> mat;
 
    // 基本情況
    if (arr.size() == 0) {
        return mat;
    }
 
    // 構造一個 `M × N` 矩陣
    mat.resize(N, vector<int>(M));
 
    int top = 0, bottom = M - 1;
    int left = 0, right = N - 1;
 
    int index = 0;
 
    while (1)
    {
        if (left > right) {
            break;
        }
        // 打印第一行
        for (int i = left; i <= right; i++) {
            mat[top][i] = arr[index++];
        }
        top++;
 
        if (top > bottom) {
            break;
        }
        // 打印右列
        for (int i = top; i <= bottom; i++) {
            mat[i][right] = arr[index++];
        }
        right--;
 
        if (left > right) {
            break;
        }
        //打印底行
        for (int i = right; i >= left; i--) {
            mat[bottom][i] = arr[index++];
        }
        bottom--;
 
        if (top > bottom) {
            break;
        }
        //打印左列
        for (int i = bottom; i >= top; i--) {
            mat[i][left] = arr[index++];
        }
        left++;
    }
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容