1050 螺旋矩阵 申请二维数组
来源:互联网 发布:淘宝二姐家是正品吗 编辑:程序博客网 时间:2024/05/29 10:09
写的太麻烦还没有满分
http://www.cnblogs.com/rollenholt/articles/1907415.html 申请2维数组的2种方法
尝试了5 数组有问题说明方法不行,有漏洞
#include <stdio.h>
#include <iostream>#include <string.h>
#include <string>
#include <vector>
#include <sstream>
#include <iomanip>
#include <cmath>
#include<limits>
#include <iostream>
#include <algorithm>
using namespace std;
int cmp(int a,int b)
{
return a>b;
}
int main()
{
int n;
cin>>n;
vector<int >a;
for(int i=0;i<n;i++)
{
int temp;
cin>>temp;
a.push_back(temp);
}
sort(a.begin(),a.end(),cmp);
int m=1,l;//m是列 小的 l是行 大的
for(int i=1;i<sqrt(double(n));i++)
{
int max=1;
if(n%i==0&&i>max) m=i;
}
l=n/m;
int x=0,y=-1;
int c=l,c1=m;
//int *q=new int [x][y];
int **q;
q = new int *[l];
for(int i = 0; i < l; i++)
q[i] = new int[m];
int k=1;//k是转动方向
int count=0;
int flag=0;//是l还是m进行运动的次数
int j=0;//总次数
for(int i=0;i<=m+l-2;i++)
{
if(k==1) //m++ 加 m次
{
for(int i=0;i<c1&&c1>0;i++)
{
y++;
q[x][y]=a[j++];
}
k++;
c--;
}
else if(k==2)//l++ m+
{
for(int i=0;i<c&&c>0;i++)
{
x++;
q[x][y]=a[j++];
}
k++;
c1--;
}
else if(k==3)
{
for(int i=0;i<c1&&c1>0;i++)
{
y--;
q[x][y]=a[j++];
}
c--;
k++;
}
else if(k==4)
{
for(int i=0;i<c&&c>0;i++)
{
x--;
q[x][y]=a[j++];
}
c1--;
k=1;
}
}
for(int i=0;i<l;i++)
for(int j=0;j<m;j++)
{
if(j!=m-1) cout<<q[i][j]<<' ';
else cout<<q[i][j]<<endl;
}
return 0;
}
0 0
- 1050 螺旋矩阵 申请二维数组
- 动态二维数组,螺旋矩阵
- 二维数组动态分配&螺旋矩阵
- 二维数组动态分配and螺旋矩阵
- 动态申请二维数组做矩阵乘法
- 二维数组螺旋遍历
- 二维数组螺旋输出
- 螺旋打印二维数组
- 二维数组螺旋填充
- 螺旋打印二维数组
- 螺旋二维数组
- 黑马程序员——用二维数组打印螺旋方阵和螺旋矩阵
- 顺时针螺旋打印二维数组
- 螺旋打印一个二维数组
- PHP实现螺旋矩阵(螺旋数组)
- 动态申请二维数组。
- 动态申请二维数组
- 申请二维数组
- 初识数据库
- matlab size函数
- 自定义控件之绘图篇(三) —— 区域(Range)
- java爬取网站正文
- caffe学习笔记(一):MNIST例程
- 1050 螺旋矩阵 申请二维数组
- 《华为机试在线训练》之提取不重复的整数
- C语言实现TCP服务器----模型(三)
- 解决matplotlib中文乱码问题(Windows)
- PAT L2-011. 玩转二叉树
- android教你打造独一无二的刷新加载框架
- Dom4j解析XML
- PHP:自动加载类
- Latex使用小结