当前位置: 首页 > news >正文

acwing.蛇形矩阵

题目链接:

思路:

题目中的回子蛇形填充的顺寻是 右-->下-->左-->上,顺时针顺序。

 ②我们枚举矩阵位置,从1开始,总共有 n*m 个位置。对于填充的方向,当下一个数访问过或者下个数超出了数组界限,我们按顺时针方向改变填充的方向。

代码如下:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 110;

int n, m;
int g[N][N];
//开始点
int x, y;

//方向偏移向量 从右开始
int dx[] = {0, 1, 0, -1};
int dy[] = {1, 0, -1, 0};

signed main(){
    cin >> n >> m;
    //开始的方向
    int d = 0;
    for(int i = 1; i <= n*m; i++){
        g[x][y] = i;
        int a = dx[d]+x, b = dy[d] + y;
        //要超出边界或者这个点访问过了
        if(a<0||b<0||a>=n||b>=m || g[a][b]){
            //更新方向 方向是顺时针
            d = (d+1) % 4;
            a = dx[d]+x, b = dy[d]+y;
        }
        x = a, y =b;
    }
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            cout << g[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}

http://www.dtcms.com/a/118064.html

相关文章:

  • java+postgresql+swagger-多表关联insert操作(六)
  • golang 计时器内存泄露问题 与 pprof 性能分析工具
  • VTK知识学习(51)- 交互与Widget(二)
  • 无人机双频技术及底层应用分析!
  • C++学习之三次握手四次挥手
  • 从零设计React-Markdown组件的实现方案
  • MySQL数据库经典面试题解析
  • vue3实战一、管理系统之实战立项
  • Java的Selenium的特殊元素操作与定位之验证码
  • 实用数字图像处理与分析系统
  • 【STM32】综合练习——智能风扇系统
  • 进程内存分布--之showmap呈现memory-layout.cpp内存分布
  • Java设计模式之抽象工厂模式:从入门到架构级实践
  • 经典频域分析法(Bode图、Nyquist判据) —— 理论、案例与交互式 GUI 实现
  • Java 面试系列:Java 中的运算符和流程控制 + 面试题
  • 先进制造aps专题三十三 开源aps产品,frepple和dream对比分析
  • go --- go run main.go 和 go run .
  • Rollup详解
  • 西湖大学团队开源SaProt等多款蛋白质语言模型,覆盖结构功能预测/跨模态信息搜索/氨基酸序列设计等
  • 【7】C#上位机---Modbus RTU 界面设计与封装
  • linux (CentOS 10)使用传统程序语言(C)进行编译---主,子程序连接:子程序的编译
  • 新球体育比分状态监控
  • 【工具】Redis管理工具推荐
  • Spring Boot + MyBatis + Maven论坛内容管理系统源码
  • 阿里云域名证书自动更新acme.sh
  • 在 Windows 上设置 vm.max_map_count 参数
  • 在ubuntu24上装ubuntu22
  • docker相关命令
  • Vue3实战三、Axios封装结合mock数据、Vite跨域及环境变量配置
  • Linux-CentOS-7—— 配置静态IP地址