劍指Offer學習-面試題29:順時針打印矩陣

	/**
     * 順時針打印矩陣
     *
     * @param arr
     */
    public void printMatrixClockwisely(int[][] arr) {
        if (null == arr || 0 == arr.length) return;
        int x = arr.length;
        int y = arr[0].length;

        int start = 0;
        while (x > start * 2 && y > start * 2) {
        
            int endX = y - start - 1;
            int endY = x - start - 1;
            
            //從左到右打印
            for (int i = start; i <= endX; i++) {
                System.out.print(arr[start][i]);
            }
            
            if (start < endY) {
                //從上到下打印
                for (int i = start + 1; i <= endY; i++) {
                    System.out.print(arr[i][endX]);
                }
            }
            
            if (start < endX && start < endY) {
            	//從右到左打印
                for (int i = endX - 1; i >= start; i--) {
                    System.out.print(arr[endY][i]);
                }
            }
            
            if (start < endX && start < endY - 1) {
                //從下到上打印
                for (int i = endY - 1; i >= start + 1; i--) {
                    System.out.print(arr[i][start]);
                }
            }
            
            start++;
            
        }

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章