文档章节

环形矩阵

柠檬味的猫咪
 柠檬味的猫咪
发布于 2015/06/06 13:31
字数 296
阅读 11
收藏 0
点赞 0
评论 0

面试题:

给你4,程序输出:

   01 12 11 10
   02 13 16 09
   03 14 15 08
   04 05 06 07

   给你5,程序输出:

   01 16 15 14 13
   02 17 24 23 12
   03 18 25 22 11
   04 19 20 21 10
   05 06 07 08 09

不难发现其实就是一个环形矩阵问题,规律就是它需要在哪里转变打印方向

从上图可以得出转头的规律

public class PrintCircularMatrix {

    public static void main(String[] args) {
        int SIZE = 6;
        int[][] arr = new int[SIZE][SIZE]; // 创建了一个二维数组
        //默认向下
        int orient = 0; // 0代表向下,1代表向右,2代表向上,3代表向左
        for(int i=1,row=0,col=0;i<=SIZE*SIZE;i++){
            arr[row][col]=i;
            // 位于①号对角线的 下一半
            if(row+col==SIZE-1&&row>=SIZE/2){
                orient=1;
            }
            // 位于①号对角线的 上一半
            if(row+col==SIZE-1&&row<SIZE/2){
                orient=3;
            }
            // 位于②号对角线的 下一半
            if(row==col&&row>=SIZE/2){
                orient=2;
            }
            if(col-row==1&&row<SIZE/2){
                orient = 0;
            }
            
            switch (orient) {
            case 0:
                row++;
                break;
            case 1:
                col++;
                break;
            case 2:
                row--;
                break;
            case 3:
                col--;
                break;
                
            }
            
        }
        
        //循环打印
        for (int i = 0; i < SIZE; i++) {
            for (int j = 0; j < SIZE; j++) {
                if (arr[i][j] < 10) {
                    System.out.print("0" + arr[i][j] + "\t");
                } else {
                    System.out.print(arr[i][j] + "\t");
                }
            }
            System.out.println();
        }
    }

}



© 著作权归作者所有

共有 人打赏支持
柠檬味的猫咪
粉丝 1
博文 12
码字总数 2030
作品 0
广州
后端工程师
巧妙使用transform实现环形路径平移动画

最近在CSS Secrets一书看到了这样一节:让一个元素沿环形路径平移。这是一个css动画的问题,但却没有看上去那么简单,其关键点是元素是平移的,也就是说,元素自身并不发生旋转,只是稳定地沿...

黑魔法 ⋅ 2016/11/15 ⋅ 0

《程序员代码面试指南》Python实现(个人读书笔记)

说明   最近一直在读左神的书——《程序员代码面试指南—IT名企算法与数据结构题目最优解》,为了记录自己的学习成果,并且方便以后查看,将自己读书时的想法与使用python实现的代码记录在...

qq_34342154 ⋅ 2017/09/09 ⋅ 0

GPU高效通信算法-Ring Allreduce

今天介绍一种新的GPU多卡计算的通信优化算法—Ring Allreduce。先来讲一下常规的GPU多卡分布式计算的原理。 第一点:我们知道GPU在矩阵并行化计算方面非常有优势,所以适合深度学习的训练。 ...

gshengod ⋅ 01/10 ⋅ 0

Excel数据可视化分析方法大全

小A是奇葩公司销售运营管理部门一名老员工,他每周最重要的工作是从公司各系统中收取不同数据为老板制作业务分析报表,小A对工作认真负责,在他提交的报表中从未发生过数据错误的情况。以下是...

高阔 ⋅ 2017/02/16 ⋅ 0

架构设计:生产者/消费者模式 第5页:环形缓冲区

[3]:环形缓冲区 前一个帖子提及了队列缓冲区可能存在的性能问题及解决方法:环形缓冲区。今天就专门来描述一下这个话题。 为了防止有人给咱扣上“过度设计”的大帽子,事先声明一下:只有当...

冰雷卡尔 ⋅ 2014/05/06 ⋅ 0

vtkSuperquadricSource:创建以原点为中心的多边形超二次曲面

 vtkSuperquadricSource 创建以原点为中心的多边形超二次曲面,可以设置尺寸。  设置两个(φ)的纬度和经度(θ)方向的分辨率(多边形离散化)。浑圆度参数(纬度浑圆度和经度浑圆度)控...

006玩命 ⋅ 05/07 ⋅ 0

数据库查询性能优化之利器—索引(一)

  数据库查询性能优化之利器—索引(一)   最近在做基于Android的公交查询系统的过程中,遇到一个很棘手的问题:换乘算法效率低。在直达查询和一次换乘查询的时候,问题体现的还不是很明...

eddie小英俊 ⋅ 2015/01/02 ⋅ 0

JavaScript图表组件FusionCharts XT v3.3.1-SR2

跨平台、跨浏览器的JavaScript图表组件FusionCharts XT更新至v3.3.1-SR2,对饼图和环形图可视化效果做了优化,并且修复了一些图表运行中的错误。以下是更新详情。 更新详情: 修复有"null"值...

咲晚杍 ⋅ 2013/10/16 ⋅ 0

OpenGL学习一:OpenGL简介

OpenGL 函数库相关的API有核心库(gl)、实用库(glu)、辅助库(aux)、实用工具库(glut)、窗口库(glx、agl、wgl)和扩展函数库等.gl是核心,glu是对gl的部分封装。glx、agl、wgl 是针对不同窗口系...

tiankefeng0520 ⋅ 2014/03/27 ⋅ 0

程序员必看的十大电影

不同的行业领域中很多时候都分享着共同的思想和理念。比如,大量的计算机编程中涉及到的概念都被运用到了电影里。有些概念出现在电影里后变得如此之 酷,甚至反过来能帮助我们程序员更好的理...

oschina ⋅ 2013/10/25 ⋅ 101

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MySQL 数据库设计总结

规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节...

OSC_cnhwTY ⋅ 45分钟前 ⋅ 0

多线程(四)

线程池和Exector框架 什么是线程池? 降低资源的消耗 提高响应速度,任务:T1创建线程时间,T2任务执行时间,T3线程销毁时间,线程池没有或者减少T1和T3 提高线程的可管理性。 线程池要做些什...

这很耳东先生 ⋅ 52分钟前 ⋅ 0

使用SpringMVC的@Validated注解验证

1、SpringMVC验证@Validated的使用 第一步:编写国际化消息资源文件 编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制 [java] view plain copy edit.userna...

瑟青豆 ⋅ 今天 ⋅ 0

19.压缩工具gzip bzip2 xz

6月22日任务 6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具 6.1 压缩打包介绍: linux中常见的一些压缩文件 .zip .gz .bz2 .xz .tar .gz .tar .bz2 .tar.xz 建立一些文...

王鑫linux ⋅ 今天 ⋅ 0

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 今天 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 今天 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 今天 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 今天 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 今天 ⋅ 0

Linux(CentOS)下配置php运行环境及nginx解析php

【part1:搭建php环境】 1.选在自己需要安装的安装包版本,wget命令下载到服务器响应目录 http://php.net/releases/ 2.解压安装包 tar zxf php-x.x.x 3.cd到解压目录执行如下操作 cd ../php-...

硅谷课堂 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部