leetcode讲解--959. Regions Cut By Slashes

题目

In a N x N grid composed of 1 x 1 squares, each 1 x 1 square consists of a /, \, or blank space. These characters divide the square into contiguous regions.

(Note that backslash characters are escaped, so a \ is represented as "\\".)

Return the number of regions.

Example 1:

Input:
[
  " /",
  "/ "
]
Output: 2
Explanation: The 2x2 grid is as follows:

Example 2:

Input:
[
  " /",
  "  "
]
Output: 1
Explanation: The 2x2 grid is as follows:

Example 3:

Input:
[
  "\\/",
  "/\\"
]
Output: 4
Explanation: (Recall that because \ characters are escaped, "\\/" refers to \/, and "/\\" refers to /\.)
The 2x2 grid is as follows:

Example 4:

Input:
[
  "/\\",
  "\\/"
]
Output: 5
Explanation: (Recall that because \ characters are escaped, "/\\" refers to /\, and "\\/" refers to \/.)
The 2x2 grid is as follows:

Example 5:

Input:
[
  "//",
  "/ "
]
Output: 3
Explanation: The 2x2 grid is as follows:

Note:

  • 1 <= grid.length == grid[0].length <= 30
  • grid[i][j] is either '/', '\', or ' '.

题目地址

讲解

这道题是关于图的题,用到了并查集这个数据结构。好久没用并查集了,我主要是参考了这个博客:https://zxi.mytechroad.com/bl...

Java代码

class Solution {
    public int regionsBySlashes(String[] grid) {
        int result = 0;
        int index=-1;
        List list = new ArrayList<>();
        for(String s:grid){
            for(Character c:s.toCharArray()){
                for(int i=0;i<4;i++){
                    DisJointSet ds = new DisJointSet();
                    list.add(ds);
                }
            }
        }
        for(int j=0;jds2Root.rank){
                    ds2Root.parent = ds1Root;
                }else if(ds1Root.rank

你可能感兴趣的:(图,并查集,算法,leetcode)