蛇形数组的实现
程序员文章站
2024-03-15 23:21:48
...
蛇形数组: 实现代码
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#define N 10
int arr[N][N] = {0};
void show(void)
{
for (int i = 0; i<N; i++) {
for (int j = 0; j<N; j++) {
printf("%3d ", arr[i][j]);
}
printf("\n");
}
printf("\n");
}
int main(int argc, char *argv[])
{
int circle = (N + 1) / 2;
int i, j;
int num = 1;
for (int k = 0, i = 0, j = 0; k<circle; k++) {
while (j < N - k) { arr[i][j] = num++; j++; }
j--;
i++;
while (i < N - k) { arr[i][j] = num++; i++; }
i--;
j--;
while (j >= k) { arr[i][j] = num++; j--; }
j++;
i--;
while (i > k) { arr[i][j] = num++; i--; }
i++;
j++;
}
show();
system("pause");
return 0;
}
程序输出:
上一篇: Shell 练习题(三)
下一篇: 蛇形数组
推荐阅读
-
蛇形数组
-
蛇形数组的实现
-
给定一个数组, 求如果排序之后, 相邻两数的最大差值, 要求时 间复杂度O(N), 且要求不能用非基于比较的排序。
-
算法题:求一个数在数组中出现的位置
-
[二分法]leetcode1157:子数组中占绝大多数的元素(hard)
-
【LeetCode 力扣 414】第三大的数 ,给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。
-
【算法】给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要求不能用非基于比较的排序
-
给定一个非空的整数数组,返回其中出现频率前 k 高的元素。要求时间复杂度优于O(nlogn)
-
LeetCode算法题解:一个无序数组排序后的任意两个相邻元素的最大差值
-
数据结构二分法-给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。