Leetcode Battleships in a Board

来源:互联网 发布:知行结合人物论据 编辑:程序博客网 时间:2024/05/16 18:07

题意:统计战舰的个数,其实就是统计相连的X的个数。

思路:逐个检查,用DFS改相连的X。

class Solution {public:    vector<vector<char> > tempboard;    int sizex, sizey;    int countBattleships(vector<vector<char>>& board) {        tempboard = board;        sizex = board.size();        sizey = board[0].size();                int nums = 0;        for(int i = 0; i < tempboard.size(); ++ i) {            for(int j = 0; j < tempboard[i].size(); ++ j) {                //cout << tempboard[i][j];                if(tempboard[i][j] == 'X') {                    nums ++;                    dfs(i, j);                }            }        }                return nums;    }    void dfs(int x, int y) {        if(tempboard[x][y] == '.') return;                tempboard[x][y] = '.';        if(x - 1 >= 0) dfs(x - 1, y);        if(x + 1 < sizex) dfs(x + 1, y);        if(y - 1 >= 0) dfs(x, y - 1);        if(y + 1 < sizey) dfs(x, y + 1);                return;    }};


0 0