博客
关于我
acwing2蛇形矩阵
阅读量:220 次
发布时间:2019-03-01

本文共 892 字,大约阅读时间需要 2 分钟。

蛇形矩阵初始化方法

代码解析

#include 
using namespace std;
const int N = 110;
int n, m;
int q[N][N];
int main() {
cin >> n >> m;
int dx[] = {-1, 0, 1, 0};
int dy[] = {0, 1, 0, -1};
int x = 0, y = 0, d = 1;
for (int i = 1; i <= n * m; ++i) {
q[x][y] = i;
int a = x + dx[d], b = y + dy[d];
if (a < 0 || a >= n || b < 0 || b >= m || q[a][b]) {
d = (d + 1) % 4;
a = x + dx[d], b = y + dy[d];
}
x = a, y = b;
}
for (int i = 0;

代码逻辑

1. 初始化

  • 首先,程序从标准输入读取两个整数nm,分别表示矩阵的行数和列数。
  • 定义了两个数组dxdy,分别用于控制方向变化。
  • 初始化坐标xy为0,初始方向d为1(表示向右)。

2. 填充矩阵

  • 使用一个循环从1到n * m,逐步填充矩阵。
  • 在每次循环中,当前位置的值被赋予当前的索引i
  • 计算下一个位置的坐标ab,如果超出矩阵范围或已经被占用的位置,改变方向。
  • 更新当前位置xy

3. 方向控制

  • 方向由d变量控制,循环使用四个方向之一(上、右、下、左)。
  • 当遇到边界或已占用位置时,改变方向。

代码特点

  • 空间复杂度:O(n * m),因为需要存储整个矩阵。
  • 时间复杂度:O(n * m),主要是填充矩阵的过程。
  • 边界处理:通过检查坐标是否超出矩阵范围来避免越界。

应用场景

该算法常用于生成蛇形矩阵,适用于需要按特定顺序初始化二维数组的场景。

转载地址:http://jovv.baihongyu.com/

你可能感兴趣的文章
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
NHibernate学习[1]
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
查看>>
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>
NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>
Nim教程【十二】
查看>>
Nim游戏
查看>>