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

书籍“之“字形打印矩阵(8)0609

题目
给定一个矩阵matrix,按照"之"字形的方式打印这个矩阵,例如:
1        2        3        4        

5        6        7        8        

9       10       11      12

”之“字形打印的结果为:1,2,5,9,6,3,4,7,10,11,8,12

1.上坐标(tR,tC)初始为(0,0),先沿着矩阵第一行移动(tC++),当到达第一行最右边的元素后,再沿着矩阵最后一列移动(tR++)。

2.下坐标(dR,dC)初始为(0,0),先沿着矩阵第一列移动(dR++),当到达第一列最下边的元素时,再沿着矩阵最后一行移动(dC++)。

3.上坐标与下坐标同步移动,每次移动后的上坐标与下坐标的连线就是矩阵中的一条斜线,打印斜线上的元素即可。

4.如果上次斜线是从左下向右上打印的,这次一定是从右上向左下打印,反之亦然。

public void printMatrixZigZag(int[][] matrix){int tR = 0;int tC = 0;int dR = 0;int dC = 0;int endR = matrix.length - 1;int endC = matrix[0].length - 1;boolean = fromUp = false;while(tR != endR + 1){printLevel(matrix,tR,tC,dR,dC,fromUp);tR = tC == endC ? tR + 1 : tR;tC = tC == endC ? tC : tC + 1;dC = dR == endR ? dC + 1 : dC;dR = dR == endR ? dR : dR + 1;fromUp = !fromUp;}System.out.println();
}public void printLevel(int[][] m, int tR, int tC, int dR, int dC,boolean f){if(f){while(tR != dR + 1){System.out.print(m[tR++][tC--] + " ");}}else{while(dR != tR - 1){System.out.print(m[dR--][dC++] + " ");}}
}

相关文章:

  • 【11408学习记录】考研数学攻坚:行列式本质、性质与计算全突破
  • 【大厂机试题解法笔记】矩阵匹配
  • MySQL JOIN 表过多的优化思路
  • Matlab | 基于matlab的图像去噪的原理及实现
  • ZeenWoman 公司数据结构文档
  • LeetCode - 260. 只出现一次的数字 III
  • 【学习记录】使用 Kali Linux 与 Hashcat 进行 WiFi 安全分析:合法的安全测试指南
  • R语言速释制剂QBD解决方案之二
  • R语言速释制剂QBD解决方案之一
  • 【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
  • 数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)
  • 【leetcode】136. 只出现一次的数字
  • 实现自动化管理、智能控制、运行服务的智慧能源开源了。
  • Oauth认证过程中可能会出现什么问题和漏洞?
  • ubuntu22.04有线网络无法连接,图标也没了
  • OPenCV CUDA模块光流处理------利用Nvidia GPU的硬件加速能力来计算光流类cv::cuda::NvidiaHWOpticalFlow
  • 第22节 Node.js JXcore 打包
  • 技能伤害继承英雄属性【War3地图编辑器】进阶
  • TCP/IP 网络编程 | 服务端 客户端的封装
  • OPENCV形态学基础之二腐蚀
  • 湘潭网站优化公司/合肥网站推广电话
  • 网站技术维护/网络营销渠道
  • 重庆二级站seo整站优化排名/seo关键词优化排名
  • 哪个网站可有做投票搭建/百度seo是什么
  • 网站制作公司兴田德润简介/用广州seo推广获精准访问量
  • 自己做图片网站/网页设计与网站开发