文章标题

来源:互联网 发布:怎么查看淘宝客pid 编辑:程序博客网 时间:2024/06/07 18:35

题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

import java.util.ArrayList;public class Solution {    ArrayList<Integer> res = new ArrayList<Integer>();    public ArrayList<Integer> printMatrix(int [][] matrix) {        int start = 0;        int rows = matrix.length;        int cols = matrix[0].length;        if(matrix==null || rows<=0 || cols<=0) return res;        while(rows>start*2 && cols>start*2){            printMatrixCore(matrix,rows,cols,start);            start++;        }        return res;    }    public void printMatrixCore(int[][] matrix, int rows, int cols, int start){        int endX = rows-start-1;        int endY = cols-start-1;        for(int i=start; i<=endY; i++){            res.add(matrix[start][i]);        }        if(endX>start){            for(int i=start+1;i<=endX; i++){                res.add(matrix[i][endY]);            }        }        if(endX>start && endY>start){            for(int i=endY-1;i>=start; i--){                res.add(matrix[endX][i]);            }        }        if(endX>(start+1) && endY>start){            for(int i=endX-1;i>start; i--){                res.add(matrix[i][start]);            }        }        }}

思路:我们可以用循环来打印矩阵,每次打印矩阵中的一个圈,首先这里注意的是循环的结束条件,其次分析打印一圈的功能,打印一圈分为4步,第一步:从左至右打印第一行,第二步:从上至下打印一列,第三步:从右到左打印一行,第四步:从下到上打印一列。其中每一步的条件分别如下:第一步是必须的,第二步打印的前提是打印的圈必须有两列,第三步是必须有两行两列,第四步是必须有三行两列

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 地球末日生存破解版金币没了怎么办 手机被别人骗走了里面的微信怎么办 在微信里面被做微商的骗了钱怎么办 在qq上骗了人50怎么办 被3m多酶清洗液滴到皮肤怎么办 做3m赔了9万怎么办 在携程网上订的酒店发票怎么办 滴滴滴取消订单电话打不通怎么办 百度云容量2068g满了怎么办 淘宝电脑端描述图片间隔大怎么办 手机上下载游戏自动扣费怎么办 苹果手机下载游戏自动扣费怎么办 用手机账号登陆游戏换手机怎么办 在qq上被骗充q币怎么办 微信借钱后删了好友怎么办 财付通绑定了其它人的身份证怎么办 微信支付密码忘了没绑银行卡怎么办 微信没有绑银行卡忘记密码怎么办 威信解绑银行卡支付密码望了怎么办 买了个qq号绑定了财付通怎么办 淘宝买的东西下架了怎么办 微信红包充话费充错了怎么办 手机qq不能发红包或转账怎么办 qq给人发红包被骗了怎么办 qq发红包对方看不不到怎么办 手机浏览器支付页面弹不出来怎么办 新手机登录微信需要验证怎么办 手机淘宝注册账号换手机号后怎么办 冒充微信好友诈骗被骗了怎么办 刚刚激活的电信手机号码忘了怎么办 用手机充话费充错了怎么办 王者荣耀号丢了换成了别的号怎么办 微信给空号q币怎么办 qq密码被别人改了怎么办怎么登 qq刚改了密码忘了怎么办 qq密码忘了想改密码怎么办 qq账号和密码都忘了怎么办 我的微信被别人改了密码怎么办 微信被盗密码被改了怎么办 微信被盗了密码都被改了怎么办 微信被别人改密码改手机号了怎么办