博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
419. Battleships in a Board
阅读量:5360 次
发布时间:2019-06-15

本文共 1074 字,大约阅读时间需要 3 分钟。

算船的,横着的X或者竖着的X算一条船,然后不会出现

x x
x
这种情况,X只能水平延伸或者纵向延伸……

用一个ARRAY记录上一行情况:

是X的话就说明当前这行的该位置肯定不是X。
不是X的话,如果当前是X,再看他左边是不是边界或者.,其中之一说明发现了一条船,否则只是上一条船的一部分。。

然后根据.的情况更新这一行以便下一行使用。

其实我没弄懂这个题的意思,没有TAG。。感觉正解应该不是这种naive approach..

public class Solution {    public int countBattleships(char[][] board)     {        if(board.length == 0) return 0;                int res = 0;        int[] prev = new int[board[0].length];                        for(int i = 0; i < board.length;i++)        {            for(int j = 0; j < prev.length;j++)            {                if(prev[j]==0)                {                    if(board[i][j] == 'X')                    {                        prev[j] = 1;                        if(j == 0 || board[i][j-1] != 'X') res++;                    }                    else prev[j] = 0;                }                else                {                    if(board[i][j] == 'X') prev[j] = 1;                    else prev[j] = 0;                }            }        }                return res;    }}

转载于:https://www.cnblogs.com/reboot329/p/5965857.html

你可能感兴趣的文章
Open multiple excel files in WebBrowser, only the last one gets activated
查看>>
FFmpeg进行视频帧提取&音频重采样-Process.waitFor()引发的阻塞超时
查看>>
最近邻与K近邻算法思想
查看>>
【VS开发】ATL辅助COM组件开发
查看>>
FlatBuffers In Android
查看>>
《演说之禅》I &amp; II 读书笔记
查看>>
thinkphp3.2接入支付宝支付接口(PC端)
查看>>
response和request
查看>>
【转】在Eclipse中安装和使用TFS插件
查看>>
回到顶部浮窗设计
查看>>
C#中Monitor和Lock以及区别
查看>>
【NOIP2017】奶酪
查看>>
$ 一步一步学Matlab(3)——Matlab中的数据类型
查看>>
5.6.3.7 localeCompare() 方法
查看>>
Linux下好用的简单实用命令
查看>>
描绘应用程序级的信息
查看>>
poj2406-Power Strings
查看>>
php环境搭建脚本
查看>>
FTP主动模式与被动模式说明
查看>>
php 编译常见错误
查看>>