zoukankan      html  css  js  c++  java
  • leetcode--Rotate Image

    You are given an n x n 2D matrix representing an image.

    Rotate the image by 90 degrees (clockwise).

    Follow up:
    Could you do this in-place?

    public class Solution {
        /**The algorithm is simple.
         * @author Averill Zheng
         * @version 2014-06-15
         * @since JDK 1.7
         */
        public void rotate(int[][] matrix) {
            int length = matrix.length;
    		for(int i = 0; i < length / 2; ++i){
    			for(int k = i; k < length - 1 - i; ++k){
    				matrix[i][k] += (matrix[k][length - 1 - i] + matrix[length - 1 - i][length - 1 - k] 
    								 + matrix[length - 1 - k][i]);
    				matrix[k][length - 1 - i] = (matrix[i][k] - matrix[k][length - 1 - i] 
    											 - matrix[length - 1 - i][length - 1 - k] 
    											 - matrix[length - 1 - k][i]);
    				matrix[length - 1 - i][length - 1 - k] = (matrix[i][k] - matrix[k][length - 1 - i] 
    						 								  - matrix[length - 1 - i][length - 1 - k] 
    						 								  - matrix[length - 1 - k][i]);
    				matrix[length - 1 - k][i] = (matrix[i][k] - matrix[k][length - 1 - i] 
    						   					 - matrix[length - 1 - i][length - 1 - k] 
    						   					 - matrix[length - 1 - k][i]);
    				matrix[i][k] = (matrix[i][k] - matrix[k][length - 1 - i] 
    						        - matrix[length - 1 - i][length - 1 - k] 
    						        - matrix[length - 1 - k][i]);
    			}
    		}    
        }
    }
    

      

  • 相关阅读:
    codechef Taxi Driver
    BZOJ2190 SDOI2008 仪仗队
    BZOJ 1070: [SCOI2007]修车
    BZOJ 1066 [SCOI2007]蜥蜴
    最大流模板
    表达式计算
    codechef Polo the Penguin and the Tree
    LCA 求 树中两个点的距离
    Baby Step Giant Step model
    POJ 1330 Nearest Common Ancestors (LCA,dfs+ST在线算法)
  • 原文地址:https://www.cnblogs.com/averillzheng/p/3790273.html
Copyright © 2011-2022 走看看