Battleships in a Board问题及解法
来源:互联网 发布:汽配软件 编辑:程序博客网 时间:2024/05/23 19:18
问题描述:
Given an 2D board, count how many battleships are in it. The battleships are represented with 'X'
s, empty slots are represented with '.'
s. You may assume the following rules:
- You receive a valid board, made of only battleships or empty slots.
- Battleships can only be placed horizontally or vertically. In other words, they can only be made of the shape
1xN
(1 row, N columns) orNx1
(N rows, 1 column), where N can be of any size. - At least one horizontal or vertical cell separates between two battleships - there are no adjacent battleships.
示例:
X..X...X...XIn the above board there are 2 battleships.
无效示例:
...XXXXX...XThis is an invalid board that you will not receive - as battleships will always have a cell separating between them.
问题分析:
每次遍历一行,遍历到的值为‘X’,并且该值若为某个battleship的第一个,count++。
过程详见代码:
class Solution {public: int countBattleships(vector<vector<char>>& board) { int m = board.size();if (!m) return 0;int n = board[0].size();int count = 0;for (int i = 0; i < m; i++){for (int j = 0; j < n; j++){if (board[i][j] == '.') continue;if (i > 0 && board[i - 1][j] == 'X') continue;if (j > 0 && board[i][j - 1] == 'X') continue;count++;}}return count; }};
阅读全文
0 0
- Battleships in a Board问题及解法
- Battleships in a Board战列舰队问题解法分析
- Battleships in a Board
- Battleships in a Board
- Battleships in a Board
- Battleships in a Board
- 419. Battleships in a Board
- 419. Battleships in a Board
- 419. Battleships in a Board
- 419. Battleships in a Board
- Leetcode Battleships in a Board
- 419. Battleships in a Board
- [Medium]Battleships in a Board
- 419. Battleships in a Board
- 419. Battleships in a Board
- 419. Battleships in a Board
- 419. Battleships in a Board
- 419. Battleships in a Board
- 2017 Multi-University Training Contest
- UVa512-Spreadsheet Tracking
- ~背包专题~01背包初体验
- HDU 2196 Computer(树的直径的模板题)
- 兼容emojo表情
- Battleships in a Board问题及解法
- 虚拟机类加载机制
- python处理要素类与excel关联的数据
- 全栈工程师
- 菜单的利用以及侧拉栏的使用
- LeetCode(八)415. Add Strings
- 交互式QGraphicsView(平移/缩放/旋转)
- 命令模式
- RXAndroid2.0初学习二