学堂在线矩阵螺旋Java

编程入门 行业动态 更新时间:2024-10-08 13:30:19

学堂<a href=https://www.elefans.com/category/jswz/34/1770935.html style=在线矩阵螺旋Java"/>

学堂在线矩阵螺旋Java

题目:
给定m × n个元素(m行,n列)的矩阵,以螺旋顺序返回矩阵的所有元素。输入为m n以及m*n的矩阵,输出螺旋顺序的所有元素

输入描述

输出描述

示例1:
输入:
3 3

1 2 3

4 5 6

7 8 9
输出:
123698745
题目解析:
只要注意本题最后不能以数组的形式输出就可以拿满分了。
题目代码:

import java.util.ArrayList;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int m=sc.nextInt();int n=sc.nextInt();int[][] arr=new int[m][n];for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {arr[i][j]=sc.nextInt();}}ArrayList<Integer> list=f(arr);//  System.out.println(list);Object[] arra=list.toArray();//Arraylist转arrayfor(Object o:arra){System.out.print(o);}}private static ArrayList<Integer> f(int[][] arr) {ArrayList<Integer> list=new ArrayList<>();if(arr==null){return list;}if(arr.length==0){return list;}int rows= arr.length;//行数int columns =arr[0].length;//列数char car='R'; //R是向右int r=0;int c=0;boolean[][] flag=new boolean[rows][columns];for (int i = 0; i < rows; i++) {for (int j = 0; j < columns; j++) {flag[i][j]=true;}}for (int i = 0; i < rows*columns; i++) {if(car=='R'){list.add(arr[r][c]);flag[r][c]=false;c++;if(c==columns||flag[r][c]==false){c--;car='D';continue;}else {continue;}}if(car=='D'){r++;list.add(arr[r][c]);flag[r][c]=false;if(r==rows-1||flag[r+1][c]==false){car='L';continue;}else {continue;}}if(car=='L'){c--;list.add(arr[r][c]);flag[r][c]=false;if(c==0||flag[r][c-1]==false){car='U';continue;}else {continue;}}if(car=='U'){r--;list.add(arr[r][c]);flag[r][c]=false;if(flag[r-1][c]==false){car='R';c++;continue;}else {continue;}}}return list;}}

更多推荐

学堂在线矩阵螺旋Java

本文发布于:2024-02-28 00:39:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1767196.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:在线   矩阵   学堂   螺旋   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!