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?

思路:

每次转着圈挪四个元素,这步只需要一个int的额外空间,想象一个方阵

哦不好意思,这个太不专业了,咱换个大一点6×6的

草图上比划比划第二层的元素怎么移动,一次Accept的感觉好爽

代码:

 void rotate(vector<vector<int> > &matrix) {
int n = matrix.size();
if(n < ) return; for(int layer = ; layer < n/; layer++){
for(int i = layer; i < n--layer; i++){//避免重复处理n-1-layer
int leftTop = matrix[layer][i];//注意二维矩阵的(i,j)index与数学坐标(x,y)中是相反的
matrix[layer][i] = matrix[n--i][layer]; //先在纸上想清楚赋值的先后循序
matrix[n--i][layer] = matrix[n--layer][n--i];
matrix[n--layer][n--i] = matrix[i][n--layer];
matrix[i][n--layer] = leftTop;
}
}
}

最新文章

  1. CentOS7 配置阿里云yum源
  2. my linux tech object
  3. go语言指针符号的*和&amp;
  4. C#UDP编程总结
  5. Redis - 排序
  6. NIR相机
  7. GNU风格 汇编语法总结(转)
  8. Kafka笔记--指定消息的partition规则
  9. HTML静态网页(图片热点、网页划区、拼接及表单的使用)
  10. HDU 4911 Inversion 树状数组求逆序数对
  11. day6(列表操作、列表练习题)
  12. 树状数组区间加法&amp;区间求和操作
  13. vue-05-webpack安装-vue单文件启动
  14. cp 命令有坑
  15. 使用 IntraWeb (22) - 基本控件之 TIWCalendar
  16. 学习笔记之C/C++指针使用常见的坑
  17. Gitlab+Jenkins学习之路(十三)之发布Java项目到tomcat
  18. HDU 1102 Constructing Roads(kruskal)
  19. c++初始化函数列表
  20. 【SPOJ】Highways(矩阵树定理)

热门文章

  1. Configure,make,make install详解
  2. BZOJ2280 [Poi2011]Plot
  3. ORACLE 日期比较
  4. POJ 3249 拓扑排序+DP
  5. Spring mvc中使用request和response
  6. NSSet基础-初始化、获取元素、集合运算等
  7. 在 Linux 中怎样将 MySQL 迁移到 MariaDB 上
  8. java反射之Constructor简单应用
  9. SQL 修改数据库架构名
  10. php 获取当前url,可以规避框架url重写后还有index.php的情况