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

leecode矩阵

  leecode矩阵

73.矩阵置0

image

思路:记录原始为0的元素,对他的对应行、列元素全部变为0

代码
class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {bool f[210][210];//标记初始为0的元素for (int i = 0; i <matrix.size(); i++) {for (int j = 0; j <matrix[0].size(); j++) {if (matrix[i][j]!=0) {f[i][j] = false;}else {f[i][j] = true;}}}for (int i = 0; i < matrix.size(); i++) {for (int j = 0; j < matrix[0].size(); j++) {if (f[i][j] == true) { // 对初始为0的元素对应行全部置为0,对应列全置为0for (int t = 0; t < matrix[0].size(); t++) {matrix[i][t] = 0;}for (int k = 0; k < matrix.size(); k++) {matrix[k][j] = 0;}}}}}
};

 54.螺旋矩阵

image

代码
class Solution {
public:vector<int> spiralOrder(vector<vector<int>>& matrix) {int cnt = 0;int dx[4] = {-1, 1, 0, 0}; // 上下左右,行int dy[4] = {0, 0, -1, 1}; // 列int f = 3;vector<int> ans;int x = 0;int y = -1;bool flag[20][20];//是否访问过了for (int i = 0; i < matrix.size(); i++) {for (int j = 0; j < matrix[0].size(); j++) {flag[i][j] = false;}}while (cnt < matrix.size() * matrix[0].size()) {if (f == 3) { // 右if ( y + dy[f] >= matrix[0].size()||flag[x + dx[f]][y + dy[f]] == true) {f = 1;}} else if (f == 0) {if ( x + dx[f] < 0||flag[x + dx[f]][y + dy[f]] == true) {f = 3;}} else if (f == 1) {if (x + dx[f] >= matrix.size()||flag[x + dx[f]][y + dy[f]] == true) {f = 2;}} else if (f == 2) {if ( y + dy[f] < 0||flag[x + dx[f]][y + dy[f]] == true) {f = 0;}}flag[x + dx[f]][y + dy[f]] = true;ans.push_back(matrix[x+dx[f]][y+dy[f]]);x=x + dx[f];y=y+dy[f];cnt++;}return ans;}
};

思路:

(1)利用方向向量dx、dy控制上下左右走

(2)注意先判断是否越界,再判断是否访问

(3)对于越界或访问过,更换方向标志f

http://www.gsyq.cn/news/564.html

相关文章:

  • MX WEEK3
  • GeoServer 远程代码执行漏洞 CVE-2024-36401
  • Dev C++ 如何手动开大栈空间
  • qoj4808 Great Party
  • PHP 性能优化深度指南:那些被忽视的高效策略
  • 解密平台产品管理的核心技术思维
  • ECT-OS-JiuHuaShan在DeepSeek上的提示语
  • 强力漱囗液~西吡氯铵含漱液
  • github仓库推送拉取设置token
  • 你的部署流程已然落伍-热重启的失传艺术
  • 一次“连镜像都被 RST”的 GitHub push 填坑笔记
  • 分布式事务seata
  • 内容
  • 你的项目一团糟-不是你的错-是框架的锅
  • 【神器 Collection】mermaid:编程语言自动生成流程图
  • 《Python 操作 PDF 文件的常见方法-PDF转Word(附在线工具推荐)》
  • freeRTOS的信号量,是不是有点像中断
  • weston 桌面使用及工作架构
  • 滑动窗口
  • helm 部署 prometheus
  • assert 调试断言用法详解
  • 2025.9.8 树套树
  • 复健。(11~20,OI)
  • MIDI简谱播放器1.1程序代码QZQ-2025-8-20
  • python语言网页版MIDI钢琴软件代码QZQ
  • 初识Dataset
  • Day15可变参数
  • 单词的长度
  • 111
  • LIN 的调度表周期和应用任务周期不一致的问题分析