设为首页 加入收藏

TOP

Surrounded Regions-leetcode
2015-07-24 07:12:21 来源: 作者: 【 】 浏览:62
Tags:Surrounded Regions-leetcode

题目:

Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'.

A region is captured by flipping all 'O's into 'X's in that surrounded region.

For example,

X X X X
X O O X
X X O X
X O X X

After running your function, the board should be:

X X X X
X X X X
X X X X
X O X X

class Solution 
{
public:
	void solve(vector
  
   > &board)
	{
		if(board.empty())
		{
			return;
		}
		m = board.size();
		n = board[0].size();
		for(int i=0;i
   
     s_pair; void squein(vector
    
     > &board,int i,int j) { queue
     
      q; vector
      
       result; s_pair start = make_pair(i,j); if(IsBigO(board,i,j)) { board[i][j]='-'; q.push(make_pair(i,j)); } while(!q.empty()) { s_pair num = q.front(); q.pop(); result = onein(board,num.first,num.second); for(int s=0;s < result.size();s++) { q.push(result[s]); } } } bool IsBigO(vector
       
        > &board,int i,int j) { if(i>=m || i<0 || j>=n || j<0 || board[i][j]!='O') { return false; } return true; } vector
        
          onein(vector
         
          > &board,int i,int j) { vector
          
           result; s_pair tem[4]={make_pair(i-1,j),make_pair(i+1,j),make_pair(i,j-1),make_pair(i,j+1)}; for(int para=0;para<4;para++) { if(IsBigO(board,tem[para].first,tem[para].second)) { board[tem[para].first][tem[para].second]='-'; result.push_back(tem[para]); } } return result; } };
          
         
        
       
      
     
    
   
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇IntentService实现下载 下一篇HDU 4831 Scenic Popularity

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: