leecode54.螺旋矩形
題目
思路分析
- 每次都是遍歷外面的一圈,所以使用(lx,ly)表示左上角的點,用(rx,ry)表示右下角的點。
- 行-列-行-列遍歷
注意的點
- 處理四個角,防止重複訪問。
- 處理最後可能只剩一行或者一列的重複遍歷的情況,防止重複遍歷。
程式碼
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
int lx = 0, ly = 0, rx = matrix.size() - 1, ry = matrix[0].size() - 1;
vector<int> ans;
while(lx <= rx && ly <= ry){ //(lx,ly)表示左上角的點,(rx,ry)表示右下角的點
for(int col = ly; col <= ry; col++)
ans.push_back(matrix[lx][col]);
for(int row = lx + 1; row <= rx; row++)
ans.push_back(matrix[row][ry]);
for(int col = ry - 1; col >= ly && lx != rx; col--) //有可能最後剩一行,lx!=rx避免重複遍歷
ans.push_back(matrix[rx][col]);
for(int row = rx - 1; row > lx && ly != ry; row--)//有可能最後只剩一列,ly != ry避免遍歷
ans.push_back(matrix[row][ly]);
lx++, ly++, rx--, ry--;
}
return ans;
}
};
相關文章
- 螺旋矩陣矩陣
- 54. 螺旋矩陣矩陣
- c# 螺旋矩陣C#矩陣
- leetcode:螺旋矩陣LeetCode矩陣
- canvas 繪製矩形Canvas
- canvas 虛線矩形Canvas
- AUTOCAD——矩形命令
- canvas矩形拖拽效果Canvas
- 最大加權矩形
- 實現一個螺旋轉盤
- 力扣-54. 螺旋矩陣力扣矩陣
- SVG <rect> 繪製矩形SVG
- opencv外接矩形矯正OpenCV
- SVG矩形旋轉動畫SVG動畫
- ACM 矩形的個數ACM
- [Leetcode]59.螺旋矩陣ⅡLeetCode矩陣
- 生成螺旋矩陣(方陣、矩陣)矩陣
- 演算法學習之路|螺旋矩陣演算法矩陣
- CSS矩形對角斜線CSS
- canvas 繪製圓角矩形Canvas
- canvas 繪製矩形缺角Canvas
- CSS3 矩形切角效果CSSS3
- SVG 繪製圓角矩形SVG
- canvas 設定矩形樣式Canvas
- 直方圖中最大矩形直方圖
- css圓角矩形邊框CSS
- canvas繪製矩形框Canvas
- svg生成矩形效果程式碼SVG
- php實現矩形覆蓋PHP
- cad矩形快捷鍵命令設定尺寸 cad矩形快捷鍵命令輸入尺寸
- 經典題目螺旋方陣的詳解
- C語言實現矩陣螺旋輸出C語言矩陣
- Arduino和Python螺旋槳角度數學模型UIPython模型
- canvas系列教程之繪製矩形Canvas
- opencv 最大內接矩形筆記OpenCV筆記
- canvas透明度的矩形效果Canvas
- javascript矩形碰撞檢測程式碼JavaScript
- canvas具有漸變效果的矩形Canvas