您的位置:首页 > 其它

Battleships in a Board 题解

2017-02-24 19:27 344 查看


Battleships in
a Board 题解

题目描述:

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:

链接:点击打开链接

题解:

在一个矩阵中,我们按照从上到下,从左到右的方法搜索 “X” ,当搜索到 “X” 时,按照题意,我们需要检查它的位置,即注意它的同一行上的前一个(左)位置没有 “X” ,以及它的同一列上前一个(上)位置也没有 “X”,用if(board[i][j]=='X' && (i==0 || board[i-1][j]=='.') && (j==0 || board[i][j-1]=='.'))
来设置这样的策略。如果满足这两条策略,我们认为这个“战舰”存在。算法的复杂度为O(n²)。

代码部分:

class Solution {
public:
int countBattleships(vector<vector<char>>& board) {
int ans=0;
for(int i=0; i<board.size(); i++){
for(int j=0; j<board[0].size(); j++){
if(board[i][j]=='X' && (i==0 || board[i-1][j]=='.') && (j==0 || board[i][j-1]=='.')){
ans++;
}
}
}
return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: