本文主要是介绍java,根据对角线打印矩阵,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 问题描述:输入一个矩阵,从右上角开始按照斜对角线打印矩阵的值,如矩阵为:
1, 2, 3, 4
5, 6, 7, 8
9, 10, 11, 12
13,14, 15, 16
输出:
4, 3, 8, 2, 7, 12, 1, 6, 11, 16, 5, 10, 15, 9, 14, 13
2. 思路:
思路:
将整个输出以最长的斜对角线分为两部分:右上部分和左下部分。
右上部分:对角线的起点在第一行,列数递减,对角线上相邻元素之间横坐标和纵坐标均相差1;
左下部分:对角线的起点在第一列上,行数递减,对角线上相邻元素之间横坐标和纵坐标均相差1;
复杂度:O(n^2)
3.代码
public class Main {public static void main(String[] args) {Main main = new Main();int[][] a = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};main.print(a,4);}private void print(int a[][], int n) {int row;int col;//输出右上角代码,包括对角线上的元素for (int i = n - 1; i >= 0; i--) {//每次都是从第0行开始,所以需要row &#
这篇关于java,根据对角线打印矩阵的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!