1105. Spiral Matrix (25)
来源:互联网 发布:react json转array 编辑:程序博客网 时间:2024/04/30 01:15
#include <bits/stdc++.h>using namespace std;int arr[10001][10001];bool cmp(const int a, const int b){ return a > b;}int main(void){ int p; cin >> p ; vector<int> ar(p); int i, m, j, n, t = 0; for (i = 0; i < p; i++) { cin >> ar[i]; } int temp = sqrt(p); for (; temp <= p; temp++) { if (p % temp == 0) { m = temp; n = p / temp; break; } } int tmp; if (m < n) { tmp = m; m = n; n = tmp; } sort(ar.begin(), ar.end(), cmp); int ymax = m, xmax = n; int xmin = 0, ymin = 1; i = j = 0; while (t != p) { for (j = xmin; j < xmax; j++) { arr[i][j] = ar[t++]; } if (t == p) break; xmax--; j--; for (i = ymin; i < ymax; i++) { arr[i][j] = ar[t++]; } if (t == p) break; ymax--; i--; for (j = xmax - 1; j >= xmin; j--) { arr[i][j] = ar[t++]; } if (t == p) break; xmin++; j++; for (i = ymax - 1; i >= ymin; i--) { arr[i][j] = ar[t++]; } if (t == p) break; ymin++; i++; } for (i = 0; i < m; i++) { for (j = 0; j < n - 1; j++) { cout << arr[i][j] <<" "; } cout << arr[i][j] << endl; }}
弄清楚循环上下界就好了。
阅读全文
0 0
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix(25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- iOS 企业账号发布到web 页面
- Balanced Binary Tree
- Android4.4开机向导
- PAT --- 1018. 锤子剪刀布 (20)
- 油田采油生产业务建模之活动图实践(EA使用入门)
- 1105. Spiral Matrix (25)
- 物联网(持续关注,不定期更新)
- 最大子树和
- 面向对象和基于对象的区别
- php 监控redis队列的长度,在队列堆积的时候实现微信报警
- 自定义JS对象
- python设计模式(组合模式)
- synchronized 与 Lock的对比
- HTML5迁移(将HTML4迁移到HTML5)