我们将石头放置在二维平面中的一些整数坐标点上。每个坐标点上最多只能有一块石头。 每次 move 操作都会移除一块所在行或者列上有其他石头存在的石头。 请你设计一个算法,计算最多能执行多少次 move 操作? 来源:力扣(LeetCode) 60 ms 19.6 MB
1. 题目
示例 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
链接:https://leetcode-cn.com/problems/most-stones-removed-with-same-row-or-column
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2. 解题
class dsu { vector<int> f; public: dsu(int n) { f.resize(n); for(int i = 0; i < n; ++i) f[i] = i; } void merge(int a, int b) { int fa = find(a), fb = find(b); f[fa] = fb; } int find(int a) { int origin = a; while(f[a] != a) { a = f[a]; } return f[origin] = a; } }; class Solution { public: int removeStones(vector<vector<int>>& stones) { dsu u(20000); unordered_set<int> s; for(int i = 0; i < stones.size(); ++i) u.merge(stones[i][0], stones[i][1]+10000); for(int i = 0; i < stones.size(); ++i) s.insert(u.find(stones[i][0])); return stones.size()-s.size(); } };
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算