来个 js 大佬看个这个算法?

输入指定坐标的数组,输出格式化的数组

图中的所有实体方块都是坐标值对应的数据,并且实体方块会默认往右边移动一格,如果碰到实体方块 就向下移动一格

RT
输入:['0-0'] 代表 一个 第 0 行 第 1 列的实体方块
输出:['0-1']
解释:0-0 的实体方块向右移动一格 发现没有实体方块 得 0-1
image.png

输入: ['0-0','0-1'] 分别代表一个 第 0 行 第 1 列 第 0 行 第 1 列 的方块
输出: ['1-1','0-2']
解释:
0-0 的方块向右移动 发现有实体方块 0-1 自然 往下移动一格 得 1-1
0-1 的方块向右移动 没有实体方块 得 0-2

image.png

输入 ['0-0','0-1','0-2']
输出 ['1-1','1-2','0-3']

阅读 1.2k
1 个回答

自己想了想 也写了个比较糙的,当做抛砖引玉吧 求大佬~

function getRes(arr) {
  const getNextItem = (item, hasItem) => {
    const [row, column] = item.split('-')
    const next = hasItem ? `${+row + 1}-${column}` : `${row}-${+column + 1}`
    if (arr.includes(next)) return getNextItem(next, true)
    else return next
  }
  return arr.reduce((prev, next) => {
    prev.push(getNextItem(next))
    return prev
  }, [])
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题