【題目描述】
輸入乙個矩陣,按照從外向裡以順時針的順序依次列印出每乙個數字。
【測試用例】
1. 多行陣列;
2. 只有一行的陣列;
3. 只有一列的陣列;
4. 只有一行一列的陣列;
【解決方案】
本題沒有涉及複雜的演算法或資料結構,畫圖可以讓本題的思路更加具體化,考察動手畫圖用自己的思維解決問題的思路,只是考慮的問題稍多,並不難。
1. 考慮順時針各個行列的列印規律;
2. 考慮不規則的列印情況;
我的**實現,僅供參考:
1public
static
void printmatrixclockwisely(int
arr)27
8int left = 0;9
int right = arr[0].length - 1;10
int top = 0;11
int bottom = arr.getlength(0) - 1;12
13while (left <= right && bottom >=top)
1420
21//
列印右邊一列
22if (top
2328}29
30//
列印下邊一行
31if (left < right && top
3237}38
39//
列印左邊一列
40if (left < right && top < bottom - 1)41
46}4748 left++;
49 right--;
50 top++;
51 bottom--;52}
53 }
面試題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 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 1 void printmatrix...