黄蓉填充九宫格

题意

思路

这道题是面试某公司时遇到的一道题,当然思维有些混乱,没有解出来。

经过分析此题要点是边界处理,即向右上移动时,超出九宫格时的处理过程,右上冲突时向下移动不需要考虑边界问题,均未超出边界。

当时面试官的要求是不论语言,30 分钟输出九宫格,不需要边框样式。

代码实现

public static void main(String[] args) {
    int count = 1;
    int x = 0;
    int y = 1;
    int[][] arr = new int[3][3];

    arr[0][1] = 1;

    while (count < 9) {
        int[] index = getIndex(arr, x, y);
        x = index[0];
        y = index[1];
        arr[x][y] = ++count;
    }
    System.out.println(Arrays.toString(arr[0]));
    System.out.println(Arrays.toString(arr[1]));
    System.out.println(Arrays.toString(arr[2]));
}

public static int[] getIndex(int[][] arr, int x, int y) {
   int tempX = x - 1 < 0 ? 2 : x - 1;
   int tempY = y + 1 > 2 ? 0 : y + 1;

   if (arr[tempX][tempY] != 0) {
       return new int[]{x + 1, y};
   } else {
       return new int[]{tempX, tempY};
   }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏hrscy

Unity 基础 - 射线

Unity 中虚拟射线能够检测所碰撞到物体,使用 Physics 类的 Raycast 方法实现色心啊碰撞检测功能。

5381
来自专栏Python小屋

Python+tkinter实现任意多层级关系的组合框

正好自己要用,就想了个简单思路实现了一下,假设现在需要一个组合框来显示多个层级关系的单位名称供用户选择,如果只有固定的两级关系当然可以使用两个组合框联动来实现,...

3535
来自专栏Java架构

每个 JavaScript 工程师都应当知道的 10 个面试题以人为本1. 能说出来两种对于 JavaScript 工程师很重要的编程范式么?2. 什么是函数式编程?3. 类继承和原型继承有什么区别?

2856
来自专栏阮一峰的网络日志

每行字符数(CPL)的起源

前几天,我收到网友小龙的Email。 他想与我讨论一个问题: "各种计算机语言的编码风格,有的建议源码每行的字符数(characters per line)不...

3496
来自专栏程序员的知识天地

谈谈编码与规范

既然是风格,就没有对错。就如现实生活中,我们每个人都有自己的穿着打扮一样。可能有些人打扮土一点,但土就土,并不影响什么。

591
来自专栏知识分享

3-学习GPRS_Air202(需要知道的关于Lua的一些基本的知识)

1955
来自专栏GopherCoder

『Go 语言学习专栏』-- 第七期

2566
来自专栏Java学习网

编程的智慧特点

  编程是一种创造性的工作,是一门艺术。精通任何一门艺术,都需要很多的练习和领悟,所以这里提出的“智慧”,并不是号称一天瘦十斤的减肥药,它并不能代替你自己的勤奋...

3346
来自专栏iOS开发日记

给我十个可爱的订阅的粉丝带来的一篇iOS面经。。。。

大大小小参加过不下30+公司的面试,其中不乏BAT、TMD等一线互联网公司,总结一下,发现大厂招聘都有一个共性。

47913
来自专栏Python专栏

python用一行代码画个迷宫

2075

扫码关注云+社区

领取腾讯云代金券