Leetcode: Surrounded Regions
来源:互联网 发布:origin散点显示数据值 编辑:程序博客网 时间:2024/05/18 20:05
url
https://leetcode.com/problems/surrounded-regions/description/
描述
Given a 2D board containing ‘X’ and ‘O’ (the letter 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
解题思路
遍历四周的位置,把‘O’放入队列,然后把队列中的‘O’遍历,把其四周的‘O’也进行遍历。
示例
static class Point{ int x, y; Point(int x,int y){ this.x = x; this.y = y; } } int[]dx={-1,1,0,0}; int[]dy={0,0,-1,1}; public void solve(char[][] board) { Queue<Point> queue = new LinkedList<>(); int h = board.length; int w = board[0].length; for(int i=0;i<h;i++){ if(board[i][0]=='O'){ queue.add(new Point(i,0)); board[i][0] = '+'; } if(board[i][w-1]=='O'){ queue.add(new Point(i,w-1)); board[i][w-1] = '+'; } } for(int i=0;i<w;i++){ if(board[0][i]=='O'){ queue.add(new Point(0,i)); board[0][i] = '+'; } if(board[h-1][i]=='O'){ queue.add(new Point(h-1,i)); board[h-1][i] = '+'; } } while(!queue.isEmpty()){ Point p = queue.poll(); int x,y; for(int i=0;i<4;i++){ x = p.x+dx[i]; y = p.y+dy[i]; if(x>=0&&x<h&&y>=0&&y<w&&board[x][y]=='O'){ board[x][y] = '+'; queue.add(new Point(x,y)); } } } for(int i=0;i<h;i++){ for(int j=0;j<w;j++){ if(board[i][j]=='O'){ board[i][j] = 'X'; } if(board[i][j]=='+'){ board[i][j] = 'O'; } } } }
阅读全文
0 0
- LeetCode : Surrounded Regions
- [leetcode] Surrounded Regions
- leetcode 128: Surrounded Regions
- LeetCode 39: Surrounded Regions
- 【leetcode】Surrounded Regions
- LeetCode - Surrounded Regions
- LeetCode之Surrounded Regions
- leetcode:Surrounded Regions
- [LeetCode]Surrounded Regions
- LeetCode - Surrounded Regions
- [Leetcode]Surrounded Regions
- Leetcode Surrounded Regions
- [leetcode]Surrounded Regions
- leetcode Surrounded Regions
- Leetcode: Surrounded Regions
- LeetCode-Surrounded Regions
- [leetcode] Surrounded Regions
- leetcode Surrounded Regions 详解
- Find Pivot Index[Leetcode 724]
- 微信小程序——wx.navigateTo中url无法跳转问题(app.json中配置的tabBar与wx.navigateTo中url引用相同页面导致)(2017/12)
- 利用Burp Suite挖掘暗网服务的真实IP
- HBUOJ人见人爱A^B
- Hibernate创建数据表出错:table doesn't exist
- Leetcode: Surrounded Regions
- cpp: 统计输入的单词数量1
- Android Studio必备插件大全
- 看个AV也中招之cve-2010-2553漏洞分析
- 伪造安全公司博客钓鱼,攻击Mac又有“新姿势”
- 关于byte b1 = (byte)130和byte b1 = (byte)-130
- 看我如何利用Atom编辑器的漏洞实现远程代码执行
- MySql实现类似Oracle中Row_number功能
- shiro 框架详解-1