劍指off面試題29 順時針列印矩陣

2021-10-06 20:28:51 字數 926 閱讀 5491

面試題29. 順時針列印矩陣

class

solution

;/*設定上下左右四個界限*/

vector<

int> res;

/*儲存遍歷結果*/

int top =0;

int bottom = matrix.

size()

-1;int left =0;

int right = matrix[0]

.size()

-1;/*此演算法模擬順時針輸出的過程,請聯想列印過程*/

while

(true

)/*top移動至下一行,並進行邊界檢測*/

top++;if

(top > bottom )

break

;/*2.right列從上到下遍歷*/

for(

int i=top;i<=bottom;i++

)/*right左移,並進行邊界檢測*/

right--;if

(right < left)

break

;/*3.bottom行從右往左遍歷*/

for(

int i = right;i>=left;i--

)/*bottom行上移,並進行邊界檢測*/

bottom --;if

(bottom < top)

break

;/*4.left列從下往上遍歷*/

for(

int i=bottom;i>=top;i--

)/*left右移,並進行邊界檢測*/

left++;if

(left > right)

break;}

/*返回遍歷結果*/

return res;}}

;

劍指 面試題29 順時針列印矩陣

題目 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。思路 四個迴圈,每次執行前先判斷邊界條件 start y row start x col。總結 c class solution vector int res int col matrix 0 size 1 int row matr...

劍指Offer 面試題29 順時針列印矩陣

面試題29 順時針列印矩陣 題目 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。從上到下列印一列 if start 從右到左列印一行 if start 從下到上列印一列 if start void printmatrixclockwisely int numbers,int colu...

劍指offer 面試題29 順時針列印矩陣

輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。示例 1 輸入 matrix 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 示例 2 輸入 matrix 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,12,11,10,9...