n 块石头放置在二维平面中的一些整数坐标点上。每个坐标点上最多只能有一块石头。

如果一块石头的 同行或者同列 上有其他石头存在,那么就可以移除这块石头。

给你一个长度为 n 的数组 stones ,其中 stones[i] = [xi, yi] 表示第 i 块石头的位置,返回 可以移除的石子 的最大数量。

示例 1:

输入:stones = [[0,0],[0,1],[1,0],[1,2],[2,1],[2,2]]
输出:5
解释:一种移除 5 块石头的方法如下所示:

  1. 移除石头 [2,2] ,因为它和 [2,1] 同行。
  2. 移除石头 [2,1] ,因为它和 [0,1] 同列。
  3. 移除石头 [1,2] ,因为它和 [1,0] 同行。
  4. 移除石头 [1,0] ,因为它和 [0,0] 同列。
  5. 移除石头 [0,1] ,因为它和 [0,0] 同行。
    石头 [0,0] 不能移除,因为它没有与另一块石头同行/列。

代码

class Solution {public int removeStones(int[][] stones) {int n=stones.length;List<List<Integer>> edge=new ArrayList<>();for(int i=0;i<n;i++){edge.add(new ArrayList<>());for(int j=0;j<n;j++){if(stones[i][0]==stones[j][0]||stones[i][1]==stones[j][1])
//有冲突的两个节点连成一条边edge.get(i).add(j);}}boolean[] check=new boolean[n];int res=0;for(int i=0;i<n;i++){if(!check[i]){res++;reStones(edge,check,i);}}return n-res;}public void reStones(List<List<Integer>> edge,boolean[] check,int cur) {//dfs将所有联通节点标记check[cur]=true;for(int c:edge.get(cur)){if (check[c]) continue;reStones(edge, check, c);}}
}

leetcode 947. 移除最多的同行或同列石头(dfs)相关推荐

  1. LeetCode 947. 移除最多的同行或同列石头(并查集)

    1. 题目 我们将石头放置在二维平面中的一些整数坐标点上.每个坐标点上最多只能有一块石头. 每次 move 操作都会移除一块所在行或者列上有其他石头存在的石头. 请你设计一个算法,计算最多能执行多少次 ...

  2. 947. 移除最多的同行或同列石头2021-01-23

    链接:947. 移除最多的同行或同列石头 题解:https://leetcode-cn.com/problems/most-stones-removed-with-same-row-or-column ...

  3. 移除最多的同行或同列石头

    题目描述 Title 石子游戏 Question description 1.现有一 N ⋆ N N \star N N⋆N 的棋盘, 每个格子可能有或者没有石子, 用 1 / 0 1 / 0 1/0 ...

  4. leetcode最小面积_每日一道 LeetCode (51):盛最多水的容器

    ❝ 每天 3 分钟,走上算法的逆袭之路. ❞ 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub:https://github.com/meteor1993/LeetCode Gi ...

  5. lrange是取出所有值并移除么_图解双指针 | LeetCode 27. 移除元素

    题目描述 原题链接:LeetCode 27. 移除元素 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在 ...

  6. 每日一道 LeetCode (51):盛最多水的容器

    每天 3 分钟,走上算法的逆袭之路. 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub: https://github.com/meteor1993/LeetCode Gitee ...

  7. Java黑皮书课后题第7章:***7.36(游戏:八皇后问题)经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能相互攻击(没有两个皇后在同行、同列、同一对角线)。编写程序显示一个解决方案

    7.36(游戏:八皇后问题)经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能相互攻击(没有两个皇后在同行.同列.同一对角线).编写程序显示一个解决方案 题目 题目描述 破题 题目 题目描述 ...

  8. SQL Server 2008 R2——ROW_NUMBER() 去掉不同行中相同列的重复内容

    原文:SQL Server 2008 R2--ROW_NUMBER() 去掉不同行中相同列的重复内容 ==================================声明============= ...

  9. LeetCode 1962. 移除石子使总数最小(优先队列)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个整数数组 piles ,数组 下标从 0 开始 ,其中 piles[i] 表示第 i 堆石子中的石子数量. 另给你一个整数 k ,请你执行下述操作 ...

最新文章

  1. ios(iphone/ipad)开发笔记(1)
  2. 正则表达式模式修正符
  3. 牛客题霸 [ 求二叉树的层序遍历] C++题解/答案
  4. 定义加密函数程序python_一个python自定义的加密解密函数
  5. 2019年信息安全工程师备考技巧
  6. 一个简单而强大的单片机内存管理器-不带内存碎片整理
  7. Android中XML数据解析
  8. php 弹出下载,php文件下载,不弹出下载框怎么破
  9. MS SQL Server存储过程的优点有哪些呢?
  10. 三大运营商将解决新老用户套餐不同权问题;罗永浩与抖音合作;Git 2.26发布 | 极客头条...
  11. Bootstrap-Table事件和方法
  12. Canny边缘检测 原理python代码
  13. 绝地求生服务器维护6.28,绝地求生6月28号更新完怎么进不去 绝地求生更新维护到几点6.28...
  14. vscode远程配置
  15. 仿站源码上传服务器,仿爱站站长查询工具网源码带后台完整版
  16. 记账时,如何对开销进行分类
  17. 基于深度学习的长江干线水位数据回归预测
  18. 用 js判断 一个数是否是素数(质数)_js 基础算法题(二)
  19. 无线服务器功能,无线自组织互联网的用户管理——Radius服务器的功能设计与实现...
  20. 让AI拥有好奇心,它就可以一直看电视了

热门文章

  1. Java进阶之光!mysql创建用户并授权建表
  2. 阿里P8亲自讲解!java分布式需要学什么技术
  3. 在idea中新建的text文件_开发属于自己的第一款 IDEA 插件!
  4. Java中key可以重复的Map集合:IdentityHashMap
  5. 正式踏入24岁了……
  6. JAVA 分布式环境 Redis互斥锁
  7. 计算机科学速成课36:自然语言处理
  8. struts2中非表单标签的使用 componen
  9. JS限制表单输入特效代码
  10. symbian 中自动寻找cmwap连接点,通杀uiq 2nd 3nd和s60 2nd 3nd 5nd