对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。 给定int矩阵mat,以及它的维数nxm,请返回一个数组,数组中的元素为矩阵元素的顺时针输出。
来源:互联网 发布:一物降一物 知乎 编辑:程序博客网 时间:2024/06/04 17:50
import java.util.*;
public class Printer {
public int[] clockwisePrint(int[][] mat, int n, int m) {
// write code here
ArrayList list = new ArrayList<>(n * m);
int[] clockwiseArray = new int[n * m];
int left = -1;
int right = m;
int up = 0;
int down = n;
int total = n * m; int count = 0; int j = 0; int i = 0; while(true){ for(; j < right; j++){ list.add(mat[i][j]); count++; } right--; j = right; i++; if(count >= total){ break; } for(; i < down; i++){ list.add(mat[i][j]); count++; } down--; i = down; j--; if(count >= total){ break; } for(;j > left; j--){ list.add(mat[i][j]); count++; } left++; j = left; i--; if(count >= total){ break; } for(; i > up; i--){ list.add(mat[i][j]); count++; } up++; i = up; j++; if(count >= total){ break; } } for(int k = 0; k < list.size(); k++){ clockwiseArray[k] = list.get(k); } return clockwiseArray;}
}
阅读全文
0 0
- 对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。 给定int矩阵mat,以及它的维数nxm,请返回一个数组,数组中的元素为矩阵元素的顺时针输出。
- 请编写一个算法,若MxN矩阵中某个元素为0,则将其所在的行与列清零。 给定一个MxN的int[][]矩阵(C++中为vector>)mat和矩阵的阶数n,请返回完成操作后的int[][]矩阵(C++中
- 清除行列 请编写一个算法,若N阶方阵中某个元素为0,则将其所在的行与列清零。 给定一个N阶方阵int[][](C++中为vector<vector><int>>)mat和矩阵的阶数n,请返回完成操
- 顺时针打印矩阵元素
- [算法-java] 将一个矩阵按照从外向里以顺时针的顺序打印出每一元素
- 有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转
- 数组矩阵的顺时针输出
- 每天一个算法之顺时针打印矩阵
- 按照顺时针螺旋状打印所有矩阵元素
- 由外向里顺时针打印矩阵元素
- 有一个3*4的矩阵,求矩阵中所有元素中的最大值 数组值自定义
- 以旋转的方式输出一个矩阵中的元素
- 矩阵的顺时针打印
- 顺时针打印矩阵(数组)
- 【面试题】剑指offer20--顺时针打印一个矩阵的数字
- 如何顺时针打印一个二维矩阵
- 产生一个50X2的矩阵(二维数组),每个元素是0-10的随机数
- Mat矩阵如何获取元素
- 最近要做的
- Moving Tables HDU 1050
- python爬取天气数据
- 手动安装jenkins默认插件
- C++/MFC-多线程绘图
- 对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。 给定int矩阵mat,以及它的维数nxm,请返回一个数组,数组中的元素为矩阵元素的顺时针输出。
- Spring(一)--控制反转
- 《Linux CAN编程详解》
- mysql数据库
- Spring学习笔记之保护方法应用
- [杜教筛] BZOJ 4916 神犇和蒟蒻
- 剑指offer-合法的出栈序列
- 38 C语言自增(++)和自减(--)
- 微博分享sdk4.0 中遇到的坑以及解决办法汇总