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;
}
};
相關文章
- AUTOCAD——螺旋
- 螺旋矩陣矩陣
- 矩形Rectangle
- leetcode:螺旋矩陣LeetCode矩陣
- 矩形覆蓋
- AUTOCAD——矩形命令
- 54. 螺旋矩陣矩陣
- [Leetcode]59.螺旋矩陣ⅡLeetCode矩陣
- canvas 虛線矩形Canvas
- canvas矩形拖拽效果Canvas
- canvas 繪製矩形Canvas
- 最大加權矩形
- 力扣-54. 螺旋矩陣力扣矩陣
- 實現一個螺旋轉盤
- Rectangle Overlap 矩形重疊
- SVG <rect> 繪製矩形SVG
- LeetCode 836[矩形重疊]LeetCode
- LeetCode 492[構造矩形]LeetCode
- opencv外接矩形矯正OpenCV
- cad矩形快捷鍵命令設定尺寸 cad矩形快捷鍵命令輸入尺寸
- canvas 設定矩形樣式Canvas
- canvas 繪製圓角矩形Canvas
- CSS3 矩形切角效果CSSS3
- SVG 繪製圓角矩形SVG
- SVG矩形旋轉動畫SVG動畫
- svg生成矩形效果程式碼SVG
- php實現矩形覆蓋PHP
- canvas繪製矩形框Canvas
- canvas 繪製矩形缺角Canvas
- CSS矩形對角斜線CSS
- css圓角矩形邊框CSS
- 【ALGO】Leetcode 85.最大矩形GoLeetCode
- 直方圖中最大矩形直方圖
- 【劍指Offer】矩形覆蓋
- Boost 矩形布林運算
- JZ-010-矩形覆蓋
- Q14 LeetCode59 螺旋矩陣LeetCode矩陣
- Arduino和Python螺旋槳角度數學模型UIPython模型