0
点赞
收藏
分享

微信扫一扫

leetcode 419. 甲板上的战舰

问题描述

给定一个二维整数数组 board 代表甲板,以及一个二维整数数组 ships 代表停放在甲板上的战舰。每个战舰由一个二维数组表示,其中包含两个整数 l(长度)和 w(宽度)。

你需要返回一个与 board 相同大小的二维数组,其中每个战舰的位置都被标记为 0,其余位置不变。

输入输出格式

  • 输入:boardships
  • 输出:一个与 board 相同大小的二维数组,其中每个战舰的位置被标记为 0

示例

输入:board = [[0,1,0,0],[1,1,0,0],[0,0,0,0],[0,0,0,0]], ships = [[1,1],[2,3]]
输出:[[0,0,0,0],[0,1,0,0],[0,0,0,0],[0,0,0,0]]

解法一

解题思路:

我们需要遍历每个战舰,并在甲板上标记其位置。对于每个战舰,我们需要考虑其可能的旋转方向(水平或垂直)。

/*
 * @lc app=leetcode.cn id=419 lang=javascript
 *
 * [419] 甲板上的战舰
 */

// @lc code=start
function placeShips(board, ships) {
  for (let ship of ships) {
    const [l, w] = ship;
    let [x, y] = ship;
    // 处理水平方向
    if (x + l <= board.length) {
      for (let i = 0; i < l; i++) {
        board[x][y + i] = 0;
      }
    } else {
      // 处理垂直方向
      for (let i = 0; i < w; i++) {
        board[x + i][y] = 0;
      }
    }
  }
  return board;
}
// @lc code=end
举报

相关推荐

0 条评论