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

算法练习:19.JZ29 顺时针打印矩阵

错误原因
  • 总体思路有,但不够清晰,一直在边调试边完善。
  • 这方面就养成更好的构思习惯,以及涨涨经验吧。
分析:
思路:找规律

两个坑:

  • 一次循环的后半段是倒着遍历的
  • 是矩阵不是方阵,要考虑行列不同的情况

特殊情况:

  1. 空矩阵
  2. 行向量,列向量

#include <type_traits>
class Solution {public:vector<int> printMatrix(vector<vector<int> > matrix) {vector<int> results;// Step0.特殊情况处理:空矩阵if (matrix.size() < 1) return results;// Step1.计算左上,右上,左下的下标int k = 0;  // 左上角的下标,每次循环后+1int w_last = matrix[0].size() - 1; // 右上角的下标,每次循环后-1int h_last = matrix.size() - 1; // 左下角的下标,每次循环后-1while (k <= h_last && k <= w_last) { // 本次循环的左上角与右上角重合后 or 左上角与左下角重合后// Step1.顺序遍历上面一行for (int j = k; j <= w_last; j++)results.push_back(matrix[k][j]);// Step2.顺序遍历右边一行for (int i = k + 1; i <= h_last - 1; i++)results.push_back(matrix[i][w_last]);// Step3.逆序遍历下面一行if (k < h_last) // 跳出条件:左上角与左下角重合(针对矩阵非方阵的情况,包括行向量)for (int j = w_last; j >= k; j--)results.push_back(matrix[h_last][j]);// Step4.逆序遍历左边一行if (k < w_last) // 跳出条件:左上角与右上角重合(针对矩阵非方阵的情况,包括列向量)for (int i = h_last - 1; i >= k + 1; i--)results.push_back(matrix[i][k]);k++;w_last--;h_last--;}return results;}
};
http://www.xdnf.cn/news/482977.html

相关文章:

  • SpringAI-RC1正式发布:移除千帆大模型!
  • handsome主题美化及优化:10.1.0最新版 - 2
  • [Unity]AstarPathfindingProject动态烘焙场景
  • 电脑出故障驱动装不上?试试驱动人生的远程服务支持
  • Vue3项目,子组件默认加载了两次,使用 defineAsyncComponent 引入组件后只加载一次
  • 简单入门RabbitMQ
  • Centos7 中 Docker运行配置Apache
  • 基于Scrapy-Redis的分布式景点数据爬取与热力图生成
  • skywalking使用教程
  • LLaMA-Factory:环境准备
  • 大语言模型核心技术解析:从训练到部署的全链路实践
  • Python web 开发 Flask HTTP 服务
  • leetcode 2901. 最长相邻不相等子序列 II 中等
  • 测试工程师如何学会Kubernetes(k8s)容器知识
  • 05-SpringBoot
  • 链表的中间结点数据结构oj题(力扣876)
  • BM25 算法与关键词提取在向量数据库中的实践优化
  • tomcat一闪而过,按任意键继续以及控制台中文乱码问题
  • 基于javaweb的SSM驾校管理系统设计与实现(源码+文档+部署讲解)
  • 遥感图像非法采矿矿区识别分割数据集labelme格式1818张3类别
  • R语言如何解决导出pdf中文不显示的问题
  • 苹果新一代车载系统CarPlay Ultra来袭,全屏接管+ChatGPT助力,智能驾驶要“起飞”
  • 钉钉报销与金蝶付款单系统对接技术揭秘
  • ACM模式用Scanner和System.out超时的解决方案和原理
  • 锐捷交换机STP环路日志信息解读
  • NLG的可解释性困局:可视化工具Captum在生成模型中的应用
  • 【学习心得】Jupyter 如何在conda的base环境中其他虚拟环境内核
  • Spring Boot三层架构设计模式
  • 风控贷中策略笔记
  • CSS:颜色的三种表示方式