当前位置: 首页 > 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;
}

相关文章:

  • 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 界面设计与封装
  • 瑞幸首度牵手成都国际非遗节,用一杯饮品将非遗之美推向全国
  • 左手免费午餐右手花开岭,邓飞14年公益之路的中国贡献
  • 重庆城市轨道交通拟听证调价:公布两套票价方案,正征求意见
  • 广西北流出现强降雨,1人被洪水冲走已无生命体征
  • 上海一保租房社区亮相,首批546套房源可拎包入住
  • 既是工具又是食物,可食用机器人开启舌尖上的新科技