419. 甲板上的战舰

给定一个二维的甲板, 请计算其中有多少艘战舰。 战舰用 'X’表示,空位用 '.'表示。 你需要遵守以下规则:

给你一个有效的甲板,仅由战舰或者空位组成。

战舰只能水平或者垂直放置。换句话说,战舰只能由 1xN (1 行, N 列)组成,或者 Nx1 (N 行, 1 列)组成,其中N可以是任意大小。

两艘战舰之间至少有一个水平或垂直的空位分隔 - 即没有相邻的战舰。

示例 :

X..X
...X
...X

在上面的甲板中有2艘战舰。

无效样例 :

...X
XXXX
...X

你不会收到这样的无效甲板 - 因为战舰之间至少会有一个空位将它们分开。

进阶:

你可以用一次扫描算法,只使用O(1)额外空间,并且不修改甲板的值来解决这个问题吗?

PS:

如果我当前为X,我的上一个并且我的做一个都不是得话,这个才可能成立

class Solution {
public int countBattleships(char[][] board) {
int count = 0;
for(int i = 0 ; i < board.length ; i ++) {
for(int j = 0 ; j < board[0].length ; j ++) {
if(board[i][j] == 'X') {
Boolean isShip = true;
if(i != 0) {
if(board[i - 1][j] == 'X') {
isShip = false;
}
}
if(j != 0) {
if(board[i][j - 1] == 'X') {
isShip = false;
}
}
if(isShip) {
count ++;
}
}
}
}
return count;
}
}

最新文章

  1. 【MVVM DEV】DataColumn中的TextBox与ComboBox的并存
  2. HoloLens外包团队:HoloLens有一个严重缺陷,但微软并不想改
  3. libCEF总结01下载、编译、入门
  4. Android 系统常用的权限
  5. linux系统下root用户和普通用户的时区不一致
  6. 设计模式(Abstract Factory)抽象工厂
  7. HDU4685 Prince and Princess 完美搭配+良好的沟通
  8. Django1.10+Mysql 5.7存储emoji表情,报Incorrect string value: &#39;\\xF0\\x9F\\x90\\xA8&#39; for column &#39;signature&#39; at row 1的解决方法
  9. C#高级编程学习一-----------------第五章泛型
  10. Nginx是如何处理Request的?
  11. Win10下安装RabbitMQ以及基本知识学习
  12. css3 样式过度器 Transition
  13. EasyTouch和NGUI的使用心得
  14. python 模块之-re
  15. Springboot:没有src/main/resources目录(引入图片时(或静态资源时)发现没有该目录)
  16. 算法笔记--最大流和最小割 &amp;&amp; 最小费用最大流 &amp;&amp; 上下界网络流
  17. 异常处理:net.sf.cglib.beans.BulkBeanException
  18. Jenkins持续集成【简介】
  19. ZOJ3696 Alien&#39;s Organ 2017-04-06 23:16 51人阅读 评论(0) 收藏
  20. vue 图片压缩 基于cli3 配置

热门文章

  1. 技术人的福音!教你如何使用Typora+PicGo实现图片自动上传功能
  2. Pytest 单元测试框架
  3. ArrayList扩容机制实探
  4. python入门及数字、字符串类型
  5. Zkeys:低门槛、易操作的智能云管理系统
  6. aop面向切面编程的实现
  7. layui编辑商品时,怎么使用下拉菜单显示商品默认分类的问题
  8. webservice初级
  9. java -&gt;String、StringBuffer、StringBuilder三者之间的区别
  10. 2.C#Panel扩展控件