思路:初始時int left = 0, right = cols - 1, top = 0, bottom = rows - 1;
先從左到右,再從上到下,再從右到左(有條件,防止行向量),再從下到上遍歷(有條件,防止列向量)。最後left++;right--;top++;bottom--;
;
重複進行上述4步,直到left>right || top>bottom
結束程式。
#include
#include
#include
using
namespace std;
// 1 2 3 4
// 5 6 7 8
// 9 10 11 12
class
solution
;int rows = matrix.
size()
;int cols = matrix[0]
.size()
; vector<
int>res;
int left =
0, right = cols -
1, top =
0, bottom = rows -1;
while
(left <= right&&top <= bottom)
return res;}}
;int
main()
測試例子:
順時針列印矩陣
輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 1 2 3 45 6 7 89 10 11 1213 14 15 16則依次列印出數字 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。這個題目 寫的並不好感覺,好多if看著就煩,就是...
順時針列印矩陣
題目 給定乙個矩陣,從外向內順時針列印矩陣中的每乙個數字。例如 給定矩陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 輸出應該為 分析 這道題的意思非常直觀,給人的感覺也是so easy,然而實際去做的時候會發現,如果結構劃分的不好,會出現很多的迴圈,而且包括對各種...
順時針列印矩陣
from 題目 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 如果輸入如下矩陣 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次列印出數字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10。網上聽說聽到包括autod...