当前位置: 首页 > 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.dtcms.com/a/193690.html

相关文章:

  • 官方 Elasticsearch SQL NLPChina Elasticsearch SQL
  • 将嵌入映射到 Elasticsearch 字段类型:semantic_text、dense_vector、sparse_vector
  • HarmonyOS开发组件基础
  • 前端脚手架开发指南:提高开发效率的核心操作
  • 在 Kotlin 中,什么是解构,如何使用?
  • 探索嵌入式硬件的世界:技术、应用与未来趋势
  • 小结:jvm 类加载过程
  • python中列表的操作
  • VR场景制作如何完成?
  • 服务器内部可以访问外部网络,docker内部无法访问外部网络,只能docker内部访问
  • Qt功能区:Ribbon使用
  • mathematics-2024《Graph Convolutional Network for Image Restoration: A Survey》
  • OpenCV阈值处理完全指南:从基础到高级应用
  • 八股文--JUC(2)
  • 突发,苹果发布下一代 CarPlay Ultra
  • makefile细节说明
  • 图像锐化调整
  • AI最新资讯,GPT4.1加入网页端、Claude 3.7 Sonnet携“极限推理”发布在即
  • 有什么软件系统可以高效管理工地现场物资材料?
  • 【SpringBoot】从零开始全面解析SpringMVC (二)
  • 如何查询Ubuntu系统中最大的几个目录以G单位显示大小,从大到小排列?
  • Go的单测gomock及覆盖率命令
  • 【HTML5学习笔记2】html标签(下)
  • 《数据结构初阶》【二叉树 精选9道OJ练习】
  • 地球系统模式(CESM)实践技术应用
  • 【MySQL】数据库三大范式
  • GpuGeek 实操指南:So-VITS-SVC 语音合成与 Stable Diffusion 文生图双模型搭建,融合即梦 AI 的深度实践
  • Android framework 中间件开发(二)
  • 当 PyIceberg 和 DuckDB 遇见 AWS S3 Tables:打造 Serverless 数据湖“开源梦幻组合”
  • git管理忽略指定路径/临时文件