【问题标题】:Java - spiral move from 2-D Array inside out [closed]Java - 从二维数组内向外螺旋移动[关闭]
【发布时间】:2017-12-08 12:35:42
【问题描述】:

我正在尝试实现一种算法,在该算法中我可以按逆时针方向在未知大小的数组中移动:

16 15 14 13 5 4 3 12 6 1 2 11 7 8 9 10

有什么想法吗?

【问题讨论】:

  • 可能应该先自己尝试,而不是征求意见。如果您遇到困难,我们可以提供帮助。但是这样问并不能说明你的努力。
  • 我的第一个解决方案是使用 Hashmap 完成的,这是一种简单的解决方法。对于数组,我的方法是启动一个长度为 n*n 的数组。从中间开始,使用当前 10 条规则的大 if/else 块。这些规则包括检查每个相邻元素是否为 0。如果它们没有向上/向左/向右/向下移动。但我猜这更像是一种技巧而不是一种好方法

标签: java algorithm spiral


【解决方案1】:

看来您需要:

  1. 将 n 设置为 1 并面向右侧
  2. 移动 n 步左转
  3. 移动 n 步左转
  4. 增加 n,从第 2 步开始重复

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-06
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 2014-07-10
    相关资源
    最近更新 更多