java程序输出88的0 1矩阵_《剑指Offer》Java实现--顺时针打印矩阵
题目描述
输入一个矩阵,按照从外向里顺时针的顺序打印出每一个数字。测试用例如下图:
测试数组
思路分析
这道题目并不难,关键在于边界控制!每一层遍历均从左上角开始,逐层往里完成遍历。
Java代码实现
/**
* 由外向内顺时针打印矩阵数组
* @author Administrator
* @version 2018/10/12
*/
public class Exe31_PrintMatrixClockWisely {
public static void main(String[] args) {
int[][] matrix={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16},{21,22,23,24}};
printMatrixClockWisely(matrix);
}
public static void printMatrixClockWisely(int[][] matrix) {
//参数合法性检查
if(matrix==null||matrix.length!=matrix[0].length){
throw new IllegalArgumentException();
}else {
int dimension=matrix.length;
int rowStart=0;
int colStart=0;
//分解工作,一圈一圈的打印
while(dimension>rowStart*2&&dimension>colStart*2){
printCircle(matrix, rowStart, colStart);
rowStart++;
colStart++;
}
}
}
private static void printCircle(int[][] matrix,int rowStart,int colStart) {
int dimension=matrix.length;
//从左向右打印
for(int i=colStart;i
System.out.print(matrix[rowStart][i]+" ");
}
//从上往下打印
for(int i=rowStart+1;i
System.out.print(matrix[i][dimension-rowStart-1]+" ");
}
//从右往左打印
for(int i=dimension-colStart-2;i>colStart-1;i--){
System.out.print(matrix[dimension-rowStart-1][i]+" ");
}
//从下往上打印
for(int i=dimension-rowStart-2;i>rowStart;i--){
System.out.print(matrix[i][colStart]+" ");
}
System.out.println();
}
}
java程序输出88的0 1矩阵_《剑指Offer》Java实现--顺时针打印矩阵相关推荐
- LeetCode——剑指 Offer 29【顺时针打印矩阵】
题目 剑指 Offer 29. 顺时针打印矩阵 题目概述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 限制: 0 <= matrix.length <= 100 0 & ...
- 【剑指offer】登峰造极--顺时针打印矩阵
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:747888 本题知识点: 数组 算法知识视频讲解 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序 ...
- 剑指offer最新版_剑指Offer——Java版本(持续更新)
0 前言 邻近校招,算法要命!!! 本文为研究剑指Offer过程中的笔记,整理出主要思路以及Java版本题解,以便记忆和复习. 参考整理来自<剑指Offer 第二版>. 特别注意,对每道题 ...
- java输出栈的弹出序列_剑指offer:栈的压入、弹出序列(Java)
1.题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是 ...
- java输出链表的值_[剑指offer] 从尾到头打印链表(三种方法) java
一.每次把新遍历的链表值放到list索引为0的位置,实现逆序. public class Solution { public ArrayList printListFromTailToHead(Lis ...
- 剑指offer-面试题20.顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字.例如: 输入一个矩阵如下: 1 1 2 3 4 2 5 6 7 8 3 9 10 11 12 4 13 14 15 16 则依次打印 ...
- java单个数组求积_[剑指offer][Java]构建乘积数组
题目 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1].不能使用除法. 程 ...
- 剑指offer没有java版吗_剑指Offer(Java版) 持续更新中
面试题2 单例(之前有整理,略) 面试题3 二维数组中的查找 public boolean find(int target, int [][] array) { boolean found = fal ...
- java 数组中某个数出现的概率_剑指Offer解题报告(Java版)——排序数组中某个数的个数 38...
分析问题 问题只需要找到排序数组中某个数K的个数,由于已经是排序了,K一定是在一堆的,所以我们只需要找到第一个K的index1,然后找到最后一个K的index2就可以了 而寻找K的过程我们一般通过二分 ...
最新文章
- step by step YAML 复用
- Android 蓝牙4.0(BLE)开发实现对蓝牙的写入数据和读取数据
- 步入2021,大热的GNN会在哪些应用领域大展拳脚呢?
- hive清空外表数据
- 软件工程软件开发成本度量规范_软件开发成本度量方法
- 如何在 ASP.Net Core 中使用 LoggerMessage
- STM32——流水灯
- Java多线程_JUC包下的阻塞队列
- mysql8.0.15安装方法 mysql8安装教程
- 第九届蓝桥杯 明码2018
- sqlplus基础命令
- 中班音乐会跳舞的机器人_中班音乐律动机器人
- 蓝桥杯等差素数列-python
- 蜂鸣器播放天空之城详细解析
- 今天申请了亚马逊新加坡站点
- 无线基础知识学习(一)
- JAVA守护线程 非守护线程
- 数据结构基础之迭代法归并排序
- 机械加工工艺品配件的影响
- 往集合里面插数据,重复的不插入
热门文章
- 设计模式之观察者模式在Listview中的应用
- 【搜索/推荐排序】总结
- day52 Django全流程
- thriftpy2使用与流程
- Python——类与对象,异常处理
- 老李分享:基于图像识别的跨平台的手机自动化测试方案
- jQuery之防止【冒泡事件】,阻止默认行为 【return false】 event.stopPropagation event.preventDefault...
- 计算机网络IP分配大题,2018年IP分片网络大题
- php算法入门,a011.PHP实战:加密解密,简单算法入门
- 服务器热修复,热修复探究,hotfix,patch