1105. Spiral Matrix (25)解题报告
来源:互联网 发布:微信网站怎么制作 知乎 编辑:程序博客网 时间:2024/05/15 23:48
运用递归、分治思想解决此问题。
#define _CRT_SECURE_NO_WARNINGS#include <cstdio>#include <cstdlib>int cmp(const void *v1, const void *v2);void fill(int **matrix, int offset, int m, int n, int arr[]);int main(void){int N, *arr, m, n, min, i, j, **matrix;scanf("%d", &N);for (i = N; i > 0; i--) {if (!(N % i)) {min = i - N / i;if (min >= 0) {m = i;n = N / i;}else {break;}}}arr = new int[N];for (i = 0; i < N; i++) {scanf("%d", arr + i);}qsort(arr, N, sizeof(int), cmp);matrix = new int*[m];for (i = 0; i < m; i++) {matrix[i] = new int[n];}fill(matrix, 0, m, n, arr);for (i = 0; i < m; i++) {for (j = 0; j < n; j++) {if (j) {printf(" %d", matrix[i][j]);}else {printf("%d", matrix[i][j]);}}putchar('\n');}return 0;}int cmp(const void *v1, const void *v2) {return *((int *)v2) - *((int *)v1);}void fill(int **matrix, int offset, int m, int n, int arr[]) {static int cnt = 0;if ((offset + 1 ) * 2 <= n) {int i;for (i = offset; i < n - offset - 1; i++) {matrix[offset][i] = arr[cnt++];}for (i = offset; i < m - offset - 1; i++) {matrix[i][n - 1 - offset] = arr[cnt++];}for (i = n - offset - 1; i > offset; i--) {matrix[m - offset - 1][i] = arr[cnt++];}for (i = m - offset - 1; i > offset; i--) {matrix[i][offset] = arr[cnt++];}fill(matrix, offset + 1, m, n, arr);}else if ((offset + 1) * 2 == n + 1) {int i;for (i = offset; i < m - offset; i++) {matrix[i][offset] = arr[cnt++];}}return;}
0 0
- 1105. Spiral Matrix (25)解题报告
- [LeetCode]Spiral Matrix,解题报告
- [LeetCode] Spiral Matrix 解题报告
- LeetCode: Spiral Matrix 解题报告
- [leetcode] 54. Spiral Matrix 解题报告
- [leetcode] 59. Spiral Matrix II 解题报告
- 【LeetCode】54. Spiral Matrix 解题报告
- 【LeetCode】59. Spiral Matrix II 解题报告
- [Leetcode] 54. Spiral Matrix 解题报告
- [Leetcode] 59. Spiral Matrix II 解题报告
- LeetCode 59. Spiral Matrix II 解题报告
- Leetcode #54. Spiral Matrix 螺旋遍历 解题报告
- Leetcode #59. Spiral Matrix ii 螺旋遍历2 解题报告
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- 1105. Spiral Matrix (25)
- PHP绿色集成环境在云服务器上的应用,PHPWAMP在服务器上搭建网站案例
- Android笔记:自定义锁屏
- SR-IOV技术优化DPDK架构下Local port性能
- 修改Linux系统下的最大文件描述符限制
- SAP顾问的三重境界
- 1105. Spiral Matrix (25)解题报告
- android sqlite数据库数据类型
- linux学习笔记--route命令
- wordpress数据字典
- MyBatis 逆向工程生产源码(po、mapper)
- 2016总结-学习-健康-坚持
- Android-IPC之二
- syntax error near unexpected token `newline'脚本无法执行
- Andorid完美退出应用