该问题比较简单,由于相邻之间的舰队不会有重复,并且每个舰队只会在一行或一列。求舰队数目。
问题的关键在于不要重复计算舰队。可以有多种方法,本题采用统计X处,左和上是不是没有舰队的方式避免重复计算舰队。
class Solution {public: int countBattleships(vector<vector<char>>& board) { int count=0; for(int i=0;i<board.size();i++) { for(int j=0;j<board[i].size();j++) { if(board[i][j]=='X') { if(((i-1>=0&&board[i-1][j]=='.')||i-1<0)&&((j-1>=0&&board[i][j-1]=='.')||j-1<0)) count++; } } } return count; }};新闻热点
疑难解答