LeetCode-day09-419. 甲板上的战舰

LeetCode-day09-419. 甲板上的战舰

题目描述

给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 'X' 或者是一个空位 '.' ,返回在甲板 board 上放置的 战舰 的数量。

战舰 只能水平或者垂直放置在 board 上。换句话说,战舰只能按 1 x k(1 行,k 列)或 k x 1(k 行,1 列)的形状建造,其中 k 可以是任意大小。两艘战舰之间至少有一个水平或垂直的空位分隔 (即没有相邻的战舰)。

示例

示例1:

输入:board = [["X",".",".","X"],[".",".",".","X"],[".",".",".","X"]]

输出:2

示例2:

输入:board = [["."]]

输出:0

思路

采用遍历枚举。战舰的个数,等于战舰「头部」的个数。我们只需要统计头部 X 的个数,即为战舰的个数。

代码

java 复制代码
 public static int countBattleships(char[][] board) {
        int ans =0;
        for (int i = 0; i < board.length; i++) {
            for (int j = 0; j < board[i].length; j++) {
                if (board[i][j] == 'X' && 
                (j ==0 || board[i][j-1] !='X') && 
                (i ==0 || board[i-1][j] !='X')){
                    ans++;
                }
            }
        }
        return  ans;
    }
相关推荐
风清云淡_A7 分钟前
【java基础系列】实现数字的首位交换算法
java·算法
Gao_xu_sheng9 分钟前
Java程序打包成exe,无Java环境也能运行
java·开发语言
涵涵子RUSH10 分钟前
合并K个升序链表(最优解)
算法·leetcode
大卫小东(Sheldon)16 分钟前
Java的HTTP接口测试框架Gatling
java
谢家小布柔17 分钟前
java中的继承
java·开发语言
爱吃西瓜的小菜鸡19 分钟前
【C语言】矩阵乘法
c语言·学习·算法
l1384942745124 分钟前
Java每日一题(2)
java·开发语言·游戏
苹果醋326 分钟前
SpringBoot快速入门
java·运维·spring boot·mysql·nginx
清炒孔心菜29 分钟前
每日一题 338. 比特位计数
leetcode
WANGWUSAN6637 分钟前
Python高频写法总结!
java·linux·开发语言·数据库·经验分享·python·编程