547:省份数量
This commit is contained in:
parent
9dc8833ec1
commit
edd7a03582
92
src/main/java/leetcode/editor/cn/NumberOfProvinces.java
Normal file
92
src/main/java/leetcode/editor/cn/NumberOfProvinces.java
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
//
|
||||||
|
//
|
||||||
|
// 有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连
|
||||||
|
//。
|
||||||
|
//
|
||||||
|
// 省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。
|
||||||
|
//
|
||||||
|
// 给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而
|
||||||
|
//isConnected[i][j] = 0 表示二者不直接相连。
|
||||||
|
//
|
||||||
|
// 返回矩阵中 省份 的数量。
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// 示例 1:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//输入:isConnected = [[1,1,0],[1,1,0],[0,0,1]]
|
||||||
|
//输出:2
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// 示例 2:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//输入:isConnected = [[1,0,0],[0,1,0],[0,0,1]]
|
||||||
|
//输出:3
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// 提示:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// 1 <= n <= 200
|
||||||
|
// n == isConnected.length
|
||||||
|
// n == isConnected[i].length
|
||||||
|
// isConnected[i][j] 为 1 或 0
|
||||||
|
// isConnected[i][i] == 1
|
||||||
|
// isConnected[i][j] == isConnected[j][i]
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Related Topics 深度优先搜索 广度优先搜索 并查集 图
|
||||||
|
// 👍 595 👎 0
|
||||||
|
|
||||||
|
package leetcode.editor.cn;
|
||||||
|
|
||||||
|
import com.code.leet.entiy.TwoArray;
|
||||||
|
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.Queue;
|
||||||
|
|
||||||
|
//547:省份数量
|
||||||
|
class NumberOfProvinces {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//测试代码
|
||||||
|
Solution solution = new NumberOfProvinces().new Solution();
|
||||||
|
TwoArray twoArray = new TwoArray("[[1,1,0],[1,1,0],[0,0,1]]", true);
|
||||||
|
System.out.println(solution.findCircleNum(twoArray.getArr()));
|
||||||
|
}
|
||||||
|
|
||||||
|
//力扣代码
|
||||||
|
//leetcode submit region begin(Prohibit modification and deletion)
|
||||||
|
class Solution {
|
||||||
|
public int findCircleNum(int[][] isConnected) {
|
||||||
|
int length = isConnected.length;
|
||||||
|
boolean[] use = new boolean[length];
|
||||||
|
|
||||||
|
int count = 0;
|
||||||
|
Queue<Integer> queue = new LinkedList<>();
|
||||||
|
for (int i = 0; i < length; i++) {
|
||||||
|
if (!use[i]) {
|
||||||
|
count++;
|
||||||
|
queue.add(i);
|
||||||
|
use[i] = true;
|
||||||
|
while (!queue.isEmpty()) {
|
||||||
|
int num = queue.poll();
|
||||||
|
for (int j = 0; j < length; j++) {
|
||||||
|
if (isConnected[num][j] == 1 && !use[j]) {
|
||||||
|
use[j] = true;
|
||||||
|
queue.add(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//leetcode submit region end(Prohibit modification and deletion)
|
||||||
|
|
||||||
|
}
|
41
src/main/java/leetcode/editor/cn/NumberOfProvinces.md
Normal file
41
src/main/java/leetcode/editor/cn/NumberOfProvinces.md
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<div class="original__bRMd">
|
||||||
|
<div>
|
||||||
|
<p>有 <code>n</code> 个城市,其中一些彼此相连,另一些没有相连。如果城市 <code>a</code> 与城市 <code>b</code> 直接相连,且城市 <code>b</code> 与城市 <code>c</code> 直接相连,那么城市 <code>a</code> 与城市 <code>c</code> 间接相连。</p>
|
||||||
|
|
||||||
|
<p><strong>省份</strong> 是一组直接或间接相连的城市,组内不含其他没有相连的城市。</p>
|
||||||
|
|
||||||
|
<p>给你一个 <code>n x n</code> 的矩阵 <code>isConnected</code> ,其中 <code>isConnected[i][j] = 1</code> 表示第 <code>i</code> 个城市和第 <code>j</code> 个城市直接相连,而 <code>isConnected[i][j] = 0</code> 表示二者不直接相连。</p>
|
||||||
|
|
||||||
|
<p>返回矩阵中 <strong>省份</strong> 的数量。</p>
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
<p><strong>示例 1:</strong></p>
|
||||||
|
<img alt="" src="https://assets.leetcode.com/uploads/2020/12/24/graph1.jpg" style="width: 222px; height: 142px;" />
|
||||||
|
<pre>
|
||||||
|
<strong>输入:</strong>isConnected = [[1,1,0],[1,1,0],[0,0,1]]
|
||||||
|
<strong>输出:</strong>2
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p><strong>示例 2:</strong></p>
|
||||||
|
<img alt="" src="https://assets.leetcode.com/uploads/2020/12/24/graph2.jpg" style="width: 222px; height: 142px;" />
|
||||||
|
<pre>
|
||||||
|
<strong>输入:</strong>isConnected = [[1,0,0],[0,1,0],[0,0,1]]
|
||||||
|
<strong>输出:</strong>3
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
<p><strong>提示:</strong></p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><code>1 <= n <= 200</code></li>
|
||||||
|
<li><code>n == isConnected.length</code></li>
|
||||||
|
<li><code>n == isConnected[i].length</code></li>
|
||||||
|
<li><code>isConnected[i][j]</code> 为 <code>1</code> 或 <code>0</code></li>
|
||||||
|
<li><code>isConnected[i][i] == 1</code></li>
|
||||||
|
<li><code>isConnected[i][j] == isConnected[j][i]</code></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div><div>Related Topics</div><div><li>深度优先搜索</li><li>广度优先搜索</li><li>并查集</li><li>图</li></div></div>\n<div><li>👍 595</li><li>👎 0</li></div>
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user