LeetCode Rotate Image
来源:互联网 发布:js原生判断display 编辑:程序博客网 时间:2024/06/18 10:58
没什么东西,就是麻烦,容易出错,对于每个点找其旋转后的位置,然后一个一个替换,一层套一层的。
// LeetCode_RotateImage.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <vector>using namespace std;void getlastij(int leftup,int rightdown,int i,int j,int &lasti,int &lastj){//length is rightdown - leftup + 1lasti = i;lastj = j;int sum = rightdown - leftup;if (i==leftup){while(sum>0&&lastj>=leftup&&lastj<=rightdown){sum--;lastj--;}if (sum>0||(sum==0&&lastj<leftup)){lastj++;sum++;while(sum>0&&lasti>=leftup&&lasti<=rightdown){sum--;lasti++;}}return ;}if (i==rightdown){while(sum>0&&lastj>=leftup&&lastj<=rightdown){sum--;lastj++;}if (sum>0||(sum==0&&lastj>rightdown)){lastj--;sum++;while(sum>0&&lasti>=leftup&&lasti<=rightdown){sum--;lasti--;}}return ;}if (j==leftup){while(sum>0&&lasti>=leftup&&lasti<=rightdown){sum--;lasti++;}if (sum>0||(sum==0&&lasti>rightdown)){lasti--;sum++;while(sum>0&&lastj>=leftup&&lastj<=rightdown){sum--;lastj++;}}return ;}if (j==rightdown){while(sum>0&&lasti>=leftup&&lasti<=rightdown){sum--;lasti--;}if (sum>0||(sum==0&&lasti<leftup)){lasti++;sum++;while(sum>0&&lastj>=leftup&&lastj<=rightdown){sum--;lastj--;}}return ;}}void rotate(vector<vector<int> > &matrix) {int n = matrix.size();for (int step = n,leftup=0;step>1;step-=2,leftup++){int rightdown = leftup + step-1;for (int i=leftup;i<rightdown;i++){int lasti,lastj;int curi = leftup,curj = i;int temp = matrix[curi][curj];for (int k=1;k<=3;k++){getlastij(leftup,rightdown,curi,curj,lasti,lastj);matrix[curi][curj] = matrix[lasti][lastj];curi = lasti;curj = lastj;}matrix[curi][curj] = temp;}}}int _tmain(int argc, _TCHAR* argv[]){vector<vector<int> > matrix;vector<int> onevalue;int n;while(cin>>n){matrix.clear();for (int i=0;i<n*n;i+=n){onevalue.clear();for (int j=1;j<=n;j++){onevalue.push_back(i+j);}matrix.push_back(onevalue);}for (int i=0;i<n;i++){for (int j=0;j<n;j++){cout<<matrix[i][j]<<" ";}cout<<endl;}rotate(matrix);for (int i=0;i<n;i++){for (int j=0;j<n;j++){cout<<matrix[i][j]<<" ";}cout<<endl;}}system("pause");return 0;}
0 0
- LeetCode: Rotate Image
- [Leetcode] Rotate Image
- LeetCode : Rotate Image
- [LeetCode] Rotate Image
- leetcode 67: Rotate Image
- [leetcode] Rotate Image
- [Leetcode] Rotate Image
- [LeetCode]Rotate Image
- LeetCode-Rotate Image
- [leetcode] Rotate Image
- LeetCode - Rotate Image
- leetcode之Rotate Image
- LeetCode - Rotate Image
- Leetcode: Rotate Image
- LeetCode:Rotate Image
- Leetcode: Rotate Image
- Leetcode Rotate Image
- leetcode Rotate Image
- STM32F10x 学习笔记之基本定时器
- ZOJ-3610
- 幻世(OurDream)2D图形引擎使用教程18——易语言编写幻世程序系列(2)
- 浅谈第三方支付平台
- ZJU 1990 Subway tree systems - 树的最小表示
- LeetCode Rotate Image
- c++stack,queue
- STM32F10x 学习笔记之解决JLink 无法下载程序的问题
- 6 Practical Agile Techniques You Can Start Using Today
- Android 输入法键盘和activity页面遮挡问题解决
- Irrlicht编程基础
- STM32F10x 学习笔记之USART实现串口通讯 DMA 方式
- 众多Android 开源项目推荐,给力工作给力学习
- 题目1074:对称平方数