当前位置: 首页 > news >正文

codewars020: The Clockwise Spiral 数字顺时针螺旋矩阵

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

https://www.codewars.com/kata/536a155256eb459b8700077e/train/java

//-- https://www.codewars.com/kata/536a155256eb459b8700077e/train/java
public class TheClockwiseSpiral{
  private static final int UP = 0;
  private static final int DOWN = 1;
  private static final int LEFT = 2;
  private static final int RIGHT = 3;
  public static int[][] createSpiral(int N){
    int[][] data = new int[N][N];
    int toward = RIGHT;
    for(int num=1,i=0,j=0; num <= N*N; num++){
      data[i][j] = num;
      switch(toward){
      case UP:
        if(i == 0 || data[i - 1][j] != 0){
          toward = RIGHT;
          j++;
        }else{
          i--;
        }
        break;
      case DOWN:
        if(i == N - 1 || data[i + 1][j] != 0){
          toward = LEFT;
          j--;
        }else{
          i++;
        }
        break;
      case LEFT:
        if(j == 0 || data[i][j - 1] != 0){
          toward = UP;
          i--;
        }else{
          j--;
        }
        break;
      case RIGHT:
        if(j == N -1 || data[i][j + 1] != 0){
          toward = DOWN;
          i++;
        }else{
          j++;
        }
        break;
  
      }
    }
    return data;
  }
}

Reference:

http://bbs.csdn.net/topics/360184555

转载于:https://my.oschina.net/u/553266/blog/805882

相关文章:

  • Servlet引擎Jetty之入门1
  • PHP SPL中提供了SplFileInfo和SplFileObject两个类来处理文件操作。
  • pg_dump实例详解(备份postgresql和greenplum数据库)
  • GATK使用说明(一)
  • linux应用之apache的源码安装(centos)
  • linux sudo 命令
  • 客户端Socket
  • 一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别...
  • 画风清奇!盘点各编程语言中有趣的开源项目!
  • 前端学HTTP之报文首部
  • 【干货分享】流程DEMO-制度发文和干部任免
  • [充电]多线程无锁编程--原子计数操作:__sync_fetch_and_add等12个操作
  • Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define ...
  • 安装logstash,elasticsearch,kibana三件套
  • linux系统中如何查看日志(转)
  • CSS实用技巧
  • git 常用命令
  • golang中接口赋值与方法集
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • iOS编译提示和导航提示
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Netty源码解析1-Buffer
  • php面试题 汇集2
  • react 代码优化(一) ——事件处理
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 阿里云购买磁盘后挂载
  • 多线程 start 和 run 方法到底有什么区别?
  • ------- 计算机网络基础
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 应用生命周期终极 DevOps 工具包
  • 原生js练习题---第五课
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​香农与信息论三大定律
  • $(function(){})与(function($){....})(jQuery)的区别
  • (二)JAVA使用POI操作excel
  • (二)windows配置JDK环境
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • .apk 成为历史!
  • .net 4.0发布后不能正常显示图片问题
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET 反射的使用
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net打印*三角形
  • .Net多线程总结
  • .net和php怎么连接,php和apache之间如何连接
  • .NET上SQLite的连接
  • .Net小白的大学四年,内含面经
  • @RequestMapping处理请求异常
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [BIZ] - 1.金融交易系统特点
  • [C#] 如何调用Python脚本程序