題目:輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如:如果輸入以下矩陣:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
則依次列印出數字1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16
1void printmatrixclockwisely(vector< vector >&numbers)224
//從右到左列印一行
25if (endrow > lefttop && endcol >lefttop )
2630
//從下到上列印一行
31if (endrow - 1 > lefttop && endcol >lefttop)
3236 lefttop++;37}
38 }
分析:該題主要有兩個需要注意的地方(選取左上角(lefttop,lefttop)的一圈為分析目標):
面試題20 順時針列印矩陣
1.輸入乙個矩陣,按照從外到裡以順時針的順序列印出每乙個數字。例如 分析 分析迴圈列印的規律可以發現,每次列印都是往矩陣的內部縮小了一周,這樣的話可以可以用兩個座標點來確定這樣乙個矩形的左上角頂點和右下角頂點,然後依據兩個點確定的範圍來列印,按照從左到右,從上到下,從右到左,從下到上的順序列印。原始...
面試題20 順時針列印矩陣
題目 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。例如 思路 可以看做不斷列印幾個依次縮小的圓圈。第乙個圓圈的起點是 1,1 第二個是 2,2 依次類推。int main int argc,const char argv int row 6 int col 4 int start ...
面試題20 順時針列印矩陣
題目描述 輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。測試用例 1.多行陣列 2.只有一行的陣列 3.只有一列的陣列 4.只有一行一列的陣列 解決方案 本題沒有涉及複雜的演算法或資料結構,畫圖可以讓本題的思路更加具體化,考察動手畫圖用自己的思維解決問題的思路,只是考慮的問題稍多,並...