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;
    }
相关推荐
xxxxxmy4 分钟前
同向双指针(滑动窗口)
python·算法·滑动窗口·同向双指针
释怀°Believe12 分钟前
Daily算法刷题【面试经典150题-5️⃣图】
算法·面试·深度优先
List<String> error_P13 分钟前
数据结构:链表-单向链表篇
算法·链表
ss27318 分钟前
ConcurrentHashMap:扩容机制与size()方法
算法·哈希算法
lkbhua莱克瓦2420 分钟前
Java进阶——IO流
java·开发语言·笔记·学习方法·io流
韩立学长20 分钟前
【开题答辩实录分享】以《自选便利店商品分类管理系统》为例进行选题答辩实录分享
java·mysql·web
阿杰同学23 分钟前
Java中55种锁,高级面试题,最新面试题
java·开发语言
2401_8603195225 分钟前
在React Native鸿蒙跨平台开发中实现一个冒泡排序算法并将其应用于数据排序,如何进行复制数组以避免直接修改状态中的数组
javascript·算法·react native·react.js·harmonyos
清晓粼溪25 分钟前
SpringCloud01-基础概念
java·开发语言·spring cloud
im_AMBER26 分钟前
Leetcode 72 数组列表中的最大距离
c++·笔记·学习·算法·leetcode