LeetCode 947. 移除最多的同行或同列石头(并查集)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 947. 移除最多的同行或同列石头(并查集)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
我們將石頭放置在二維平面中的一些整數坐標點上。每個坐標點上最多只能有一塊石頭。
每次 move 操作都會移除一塊所在行或者列上有其他石頭存在的石頭。
請你設計一個算法,計算最多能執行多少次 move 操作?
示例 1: 輸入:stones = [[0,0],[0,1],[1,0],[1,2],[2,1],[2,2]] 輸出:5示例 2: 輸入:stones = [[0,0],[0,2],[1,1],[2,0],[2,2]] 輸出:3示例 3: 輸入:stones = [[0,0]] 輸出:0提示: 1 <= stones.length <= 1000 0 <= stones[i][j] < 10000來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/most-stones-removed-with-same-row-or-column
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
參考 數據結構–并查集(Disjoint-Set)
- 把行號、列號看成一個單元
- 用并查集把每個點的行列merge
- 最后查找都有點有幾個單元,點的個數減去單元個數就是能移走的石子
60 ms 19.6 MB
總結
以上是生活随笔為你收集整理的LeetCode 947. 移除最多的同行或同列石头(并查集)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 893. 特殊等价字符
- 下一篇: LeetCode 1095. 山脉数组中