E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
LeetCode-并查集
并查集
详解(点权、边权、种类)
题目引入亲戚题目背景若某个家族人员过于庞大,要判断两个是否是亲戚,确实很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。题目描述规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。输入格式第一行:三个整数n,m,p,(n#include#include#include#include#include#incl
S05251_1
·
2024-01-23 21:30
c++
算法
骚算法---
并查集
代码
#includeusingnamespacestd;constintN=10010;intp[N];//全局初始化--树结构(找你太奶法,没找到,就一直递归)//初始第一行,枚举读入值//初始化字符串,while递减--合并,抄题intfind(intx){if(p[x]!=x){p[x]=find(p[x]);}returnp[x];}intmain(){intn,m;scanf("%d%d",
Faelan.
·
2024-01-23 21:58
算法
c++
数据结构
【
leetcode-
数组】两数之和 II - 输入有序数组
【
leetcode-
数组】两数之和II-输入有序数组题目:给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。
程序员小2
·
2024-01-23 18:07
LeetCode-
题目整理【7】:加油站
加油站在一条环路上有n个加油站,其中第i个加油站有汽油gas[i]升。你有一辆油箱容量无限的的汽车,从第i个加油站开往第i+1个加油站需要消耗汽油cost[i]升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组gas和cost,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回-1。如果存在解,则保证它是唯一的。示例1:输入:gas=[1,2,3,4,5],cost=[
菜鸟要加油!
·
2024-01-23 14:16
leetcode
算法
LeetCode-
题目整理【5】:O(1) 时间插入、删除和获取随机元素
RandomizedSet结构体存在切片和哈希表的原因:变长数组由于可以根据下标定位到特定元素,因此可以在O(1)的时间内完成获取随机元素操作,但是由于无法在O(1)的时间内判断元素是否存在,因此不能在O(1)的时间内完成插入和删除操作。哈希表可以在O(1)的时间内判断元素是否存在,因此可以在O(1)的时间内完成插入和删除操作,但是不可以根据下标定位到特定元素,因此不能在O(1)的时间内完成获取随
菜鸟要加油!
·
2024-01-23 14:13
leetcode
算法
go
数据结构
LeetCode-
题目整理【6】:除自身以外数组的乘积
除自身以外数组的乘积给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据保证数组nums之中任意元素的全部前缀元素和后缀的乘积都在32位整数范围内。请不要使用除法,且在O(n)时间复杂度内完成此题。示例1:输入:nums=[1,2,3,4]输出:[24,12,8,6]示例2:输入:nums=[-1,1,0,-3,3]输出
菜鸟要加油!
·
2024-01-23 09:51
leetcode
算法
LeetCode-
题目整理【1】
从下面的三道题可以发现,都属于**删除元素,最后返回有效数组的长度。那么这时候可以使用双指针**,p为初始化一个指针,指向数组nums的起始位置,然后遍历数组,根据题目找到满足的条件,这时候就将当前遍历的值赋值给nums[p],然后p++(前后顺序需要根据题目来解答),所以大概代码种会存在:p:=0//初始化......nums[p]=nums[i]p++(或者:p++nums[p]=nums[i
菜鸟要加油!
·
2024-01-23 09:20
leetcode
算法
数据结构
LeetCode-
题目整理【3】:买卖股票的最佳时机
买卖股票的最佳时机都是求最大利润,但是在没有限制,如121和122,动态规划稍微复杂一些,建议不用,到最后两道难题,题目有限制,使用动态规划通过求解子问题的最优解来逐步求解原问题的最优解。买卖股票的最佳时机给定一个数组prices,它的第i个元素prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大
菜鸟要加油!
·
2024-01-23 09:48
leetcode
算法
堆,优先队列,二叉搜索树,平衡二叉树与
并查集
: 加工并存储数据的数据结构
加工并存储数据的数据结构堆堆的时间复杂度:堆的实现标准库优先队列需要用到优先队列的题目Expedition(POJ2431)FenceRepair二叉搜索树性质二叉搜索树的复杂度二叉搜索树的实现:标准库中的二叉搜索树平衡二叉树
并查集
并查集
例题
Handling[韩镇江]
·
2024-01-22 22:02
程序设计(算法与数据结构篇)
算法
二叉树
队列
树堆
数据结构
leetcode-
环形链表
141.环形链表题解:这个问题可以使用快慢指针的方法来解决。首先,我们创建一个虚拟头节点,并将虚拟头节点的下一个节点指向head。然后我们创建两个指针,一个快指针和一个慢指针。快指针每次移动两个节点,而慢指针每次移动一个节点。如果链表中存在环,那么快指针和慢指针最终会在环内的某个位置相遇。如果链表中不存在环,那么快指针会先到达链表的尾部。#Definitionforsingly-linkedlis
独孤--蝴蝶
·
2024-01-22 11:02
leetcode
数据结构概述
概述是计算机的一门基础学科研究数据在计算机中进行组织和存储,使我们可以高效的获取数据和修改数据分类线性结构:数组、队列、栈、链表、哈希表...树型结构:二叉树、二分搜索树、AVL树、红黑树、堆、Tire、线段树、
并查集
颜尚德
·
2024-01-21 07:30
数据结构
并查集
packagecom.company;publicclassMain{publicstaticvoidmain(String[]args){//writeyourcodehereint[][]adjustMatrix={{0,7,-1,5,-1,-1,-1},{-1,0,8,9,7,-1,-1},{-1,-1,0,-1,5,-1,-1},{-1,-1,-1,0,15,6,-1},{-1,-1,-1
Stroman
·
2024-01-21 06:10
Leetcode-
面试题 02.07 链表相交
面试题02.07.链表相交解题思路1.分析题意,两个链表时末尾相交,也就是说,只要知道两个链表从后往前最初的相等元素即可2.求链表A的长度、求链表B的长度3.让curA为最长链表的头,lenA为其长度4.求长度差,让curA和curB在同一起点上(末尾位置对齐)5.遍历curA和curB,遇到相同则直接返回解题遇到的问题无后续需要总结学习的知识点能否设计一个时间复杂度O(n)、仅用O(1)内存的解
itbird01
·
2024-01-20 23:36
并查集
测试
1.介绍**本质:**处理一些不相交的集合的合并问题,**比如:**最小生成树,最近公共祖先操作:1.初始化init,2.find查询,3.合并union2.初始化init()将父节点零散的散开->父节点为本身fa[i]=i,fa[i]=i相当于i的祖先是本身(同时作为find的递归结束条件)intfa[MAX]voidinit(intn){for(inti=1;i2.否则不断向上递归寻找父节点r
Fairy要carry
·
2024-01-20 00:15
开发语言
并查集
(多级联动)
importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;classUnionFind{privateMapparent;publicUnionFind(){parent=newHashMap>>areaMap=newHashMap>cityMap=areaMap.getOr
Fairy要carry
·
2024-01-20 00:14
java
python
windows
leetcode-
杨辉三角ii
119.杨辉三角II题解:首先,我们需要创建一个列表来存储杨辉三角的每一行。然后,我们需要计算每一行的元素。每一行的每个元素都是上一行的两个相邻元素的和。第一个和最后一个元素总是1。最后,我们返回第rowIndex行。classSolution:defgetRow(self,rowIndex:int)->List[int]:res=[1]foriinrange(1,rowIndex+1):res.
独孤--蝴蝶
·
2024-01-19 08:03
leetcode
leetcode-
杨辉三角
118.杨辉三角题解:首先,我们需要创建一个二维列表,用于存储杨辉三角的每一行。然后,我们初始化第一行和第二行,因为杨辉三角的前两行是固定的。接下来,我们使用一个循环,从第三行开始,每一行的每个元素都是上一行的两个相邻元素的和。最后,我们返回生成的杨辉三角。classSolution:defgenerate(self,numRows:int)->List[List[int]]:ifnumRows=
独孤--蝴蝶
·
2024-01-19 08:27
leetcode
leetcode 399除法求值 超水带权
并查集
题目classSolution{public:intf[45];doublemulti[45];maphash;inttot=0;intseek(intx){if(x==f[x])returnx;intfa=f[x];f[x]=seek(fa);multi[x]*=multi[fa];returnf[x];}vectorcalcEquation(vector>&equations,vector&v
巴巴多斯小魔
·
2024-01-19 07:26
leetcode
#
图
leetcode
哈希算法
算法
备战蓝桥杯算法整合
向国一冲刺六倍法判断素数欧拉筛01背包完全背包多重度背包Floyd-Warshall(多源最短路)Dijkstra(单源最短路)Bellman-Ford最短路算法最大公约数最小公倍数分解质因数全排列(递归)拓扑排序
并查集
二分算法二分答案尺取法折半枚举线段树线段树乘加法混合高精度加法高精
Knock man
·
2024-01-19 06:54
C/C++竞赛笔记
数据结构
算法
acm竞赛
算法 - 二叉树 / 图
不同的二叉搜索树[搜索树][种类](递归)栈94.二叉树的中序遍历[二叉树][遍历](栈)(迭代)144.二叉树的前序遍历[二叉树][遍历](栈)(迭代)145.二叉树的后序遍历[二叉树][遍历](栈)(迭代)图
并查集
進擊的小老虎
·
2024-01-19 02:08
算法
数据结构
【
leetcode-
链表】旋转链表
【
leetcode-
链表】旋转链表题目:给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。
程序员小2
·
2024-01-18 17:06
连通图(
并查集
)C++
给定一个无向图和其中的所有边,判断这个图是否所有顶点都是连通的。输入格式输入包含若干组数据。每组数据第一行包含两个整数n和m,表示无向图的点和边数。接下来m行,每行包含两个整数x,y,表示点x和点y相连。点的编号从1到n。图中可能存在重边和自环。输出格式每组数据输出一行,一个结果,如果所有顶点都是连通的,输出YES,否则输出NO。数据范围输入最多包含10组数据。1≤n≤1000,1≤m≤5000,
菜鸡小陈
·
2024-01-18 17:58
c++
算法
图论
Peter算法小课堂—
并查集
我们先来看太戈编程467题攀亲戚题目描述:最近你发现自己和古代一个皇帝长得很像:都有两个鼻子一个眼睛,你想知道这皇帝是不是你的远方亲戚,你是不是皇亲国戚。目前你能掌握的信息有m条,关于n个人:第i条信息包含两个人的编号ai,bi,表示ai和bi是亲戚。你的编号是0,皇帝的编号是1,最大编号为n-1,请问能否通过信息推理出你和皇帝是不是亲戚?备注:众所周知,亲戚关系具有传递性。连通块问题三大杀手:1
Peter Pan was right
·
2024-01-18 11:14
图论
建模
算法
深度优先
图论
【
leetcode-
链表】扁平化多级双向链表
【
leetcode-
链表】扁平化多级双向链表题目:多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。
程序员小2
·
2024-01-18 11:58
数据结构——用Java实现数组
数据结构可以分为三类:1.线性结构:数组、队列、栈、链表、哈希表…2.树形结构:二叉树、二分搜索树、AVL树,红黑树、堆、Trie、线段树、
并查集
…3.图结构:邻接矩阵、邻接表为什么要学习数据结构?
刘伊珂
·
2024-01-18 06:59
数据结构
图论:
并查集
的合并、判断和求节点
所谓
并查集
就是可以画图理解假如说我们想要构建一个树(也是图),要求1->2,2->4,1->3在构另一个树,要求5->6,6->7,5->81是2的头结点,2是4的头结点,以此类推下面要求去将5连接到1
northheng127
·
2024-01-18 01:02
ACM2024寒假集训
图论
算法
c++
数据结构
Java
并查集
设计以及路径压缩实现
Java全能学习+面试指南:https://javaxiaobear.cn
并查集
是一种树型的数据结构,
并查集
可以高效地进行如下操作:查询元素p和元素q是否属于同一组合并元素p和元素q所在的组1、
并查集
的结构
并查集
也是一种树型结构
小熊学Java
·
2024-01-18 00:55
Java数据结构与算法
java
开发语言
并查集
数据结构与算法
【数据结构 9】优先队列及其Java实现
3】双向链表及其Java实现【数据结构4】栈及其Java实现【数据结构5】队列及其Java实现【数据结构6】符号表及其Java实现(使用链表实现)【数据结构7】二叉查找树及其Java实现【数据结构8】
并查集
及其
一口好锅
·
2024-01-17 09:48
数据结构与算法
数据结构
算法
Java
优先队列
leetcode-
二叉树的最小深度
111.二叉树的最小深度#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defminDepth(self,root:Optional[TreeNod
独孤--蝴蝶
·
2024-01-17 09:01
leetcode
leetcode-
路径总和
112.路径总和#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defhasPathSum(self,root:Optional[TreeNode]
独孤--蝴蝶
·
2024-01-17 09:23
leetcode
[
并查集
]
并查集
应用之省份数量
前言经过
并查集
的升级路线一二三四之后,我们现在得到了一个相对来说比较完美的
并查集
数据结构,从本篇开始应用这个
并查集
为我们解决实际的算法问题。
铜炉
·
2024-01-17 09:12
【
leetcode-
字符串】单词拆分
【
leetcode-
字符串】单词拆分题目:给定一个非空字符串s和一个包含非空单词列表的字典wordDict,判定s是否可以被空格拆分为一个或多个在字典中出现的单词。
程序员小2
·
2024-01-17 08:23
牛客周赛 Round 4 解题报告 | 珂学家 | 数学 + 思维 +
并查集
B,D偏数学,C感觉很特别,有明显的分段性,E是大模拟,有着明显的
并查集
痕迹。A.游游的字符串构造“you”的字符串不存在特殊性。因此先构建k个连续的“you”,后续添加重复的y字符即可。
珂朵莉MM
·
2024-01-17 04:59
牛客周赛
解题报告
算法
力扣
java
leetcode
代码随想录——冗余连接(
并查集
)
题目树可以看成是一个连通且无环的无向图。给定往一棵n个节点(节点值1~n)的树中添加一条边后的图。添加的边的两个顶点包含在1到n中间,且这条附加的边不属于树中已存在的边。图的信息记录于长度为n的二维数组edges,edges[i]=[ai,bi]表示图中在ai和bi之间存在一条边。请找出一条可以删去的边,删除后可使得剩余部分是一个有着n个节点的树。如果有多个答案,则返回数组edges中最后出现的边
HDU-五七小卡
·
2024-01-16 21:08
代码随想录
图论
算法
数据结构
Day|37|1971. 寻找图中是否存在路径,684.冗余连接,685.冗余连接II
并查集
处理图里存在冗余边(闭环边)的问题,冗余边的两个节点存在公共根节点。
m0_75037696
·
2024-01-16 21:37
算法
代码随想录第六十五天——寻找图中是否存在路径,冗余连接,冗余连接||
并查集
理论基础
并查集
常用来解决连通性问题,主要有两个功能:将两个元素添加到一个集合中判断两个元素在不在同一个集合
并查集
代码模板intn=1005;//n根据题目中节点数量而定,一般比节点数量大一点就好vectorfather
荒野饮冰室
·
2024-01-16 21:58
算法
数据结构
并查集
【第十四课】
并查集
(acwing-836合并集合 / 做题思路 /c++代码)
目录错误思路(但能骗分emm)--邻接矩阵(可以跳过)思路存在的问题代码如下
并查集
思路代码如下一些解释错误思路(但能骗分emm)--邻接矩阵(可以跳过)思路刚看到这道题我自己做的时候,因为之前学的trie
爱写文章的小w
·
2024-01-16 14:30
算法基础
算法
c++
数据结构
图论
12-图(Graph)
图(Graph)在讨论图这种数据结构之前,先来回顾一下前面介绍的几种数据结构线性结构数组链表栈队列哈希表树形结构二叉树B树堆Trie哈夫曼树
并查集
接下来就是将要讨论到的图这种树形结构通过观察,可以发现,
ducktobey
·
2024-01-16 08:17
并查集
题目
题目1:食物链活动-AcWing解题食物链是
并查集
的一道经典题目。一共有n个动物,其中,A吃B,B吃C,C吃A。
mlww-
·
2024-01-15 18:00
数据结构
算法
数据结构
c++
leetcode-
二叉树的最大深度
104.二叉树的最大深度#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defmaxDepth(self,root:Optional[TreeNod
独孤--蝴蝶
·
2024-01-15 16:49
leetcode
leetcode-
删除排序链表中的重复元素
83.删除排序链表中的重复元素题解:要删除一个已排序链表中的所有重复元素,从而使每个元素只出现一次,我们可以使用一个指针来遍历这个链表,同时比较当前节点和它下一个节点的值。如果它们相等,我们就删除下一个节点,如果不相等,我们就移动指针。注:本题使用的是虚拟头节点#Definitionforsingly-linkedlist.#classListNode:#def__init__(self,val=
独孤--蝴蝶
·
2024-01-15 16:19
leetcode
leetcode-
合并两个有序数组
88.合并两个有序数组题解:这是一个经典的双指针问题,我们可以使用两个指针分别指向nums1和nums2的最后一个元素,然后比较两个指针所指向的元素大小,将较大的元素放入nums1的末尾,并将对应的指针向前移动一位。重复这个过程,直到nums2的所有元素都被放入nums1中。classSolution:defmerge(self,nums1:List[int],m:int,nums2:List[i
独孤--蝴蝶
·
2024-01-15 16:19
leetcode
leetcode-
对称二叉树
101.对称二叉树题解:首先我们要清楚,对称二叉树,比较的不是左右节点,而是根节点的左右子树是不是相互翻转的。比较的是两个树。就是说左子树的左节点和右子树的右节点做比较,左子树的右节点和右子树的左节点做比较。我们使用递归方法。1.递归函数的参数和返回值前面已经说过了,比较的是两个树,自然是左子树和右子树节点返回值是bool类型compare(left,right)2.终止条件节点为空的情况左节点为
独孤--蝴蝶
·
2024-01-15 16:19
leetcode
leetcode-
二进制求和
67.二进制求和classSolution:defaddBinary(self,a:str,b:str)->str:result=''carry=0foriinrange(max(len(a),len(b))):a_bit=a[-(i+1)]ifi
独孤--蝴蝶
·
2024-01-15 16:18
leetcode
leetcode-
移除元素
27.移除元素此题和26.删除有序数组中的重复项题是一样的,都使用快慢指针classSolution:defremoveElement(self,nums:List[int],val:int)->int:slow=0forfastinrange(len(nums)):ifval!=nums[fast]:nums[slow]=nums[fast]slow+=1returnslow
独孤--蝴蝶
·
2024-01-15 16:48
leetcode
leetcode-
平衡二叉树
110.平衡二叉树#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defisBalanced(self,root:Optional[TreeNode
独孤--蝴蝶
·
2024-01-15 16:47
leetcode
合并集合(
并查集
合)
836.合并集合题目提交记录讨论题解视频讲解一共有n个数,编号是1∼n,最开始每个数各自在一个集合中。现在要进行m个操作,操作共有两种:Mab,将编号为a和b的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;Qab,询问编号为a和b的两个数是否在同一个集合中;输入格式第一行输入整数n和m。接下来m行,每行包含一个操作指令,指令为Mab或Qab中的一种。输出格式对于每个询问指令Q
认真研究代码的猫猫头
·
2024-01-15 12:10
算法
数据结构
leetcode-
将有序数组转换为二叉搜索树
108.将有序数组转换为二叉搜索树二叉搜索树的定义:首先它是有序树若其左子树不空,则左子树上所有节点的值均小于它的根节点的值若其右子树不空,则右子树上所有节点的值均大于它的根节点的值它的左、右子树也分别为二叉搜索树此题的题目中还强调了一点,高度平衡,这就需要知道平衡二叉树的概念:左子树和右子树的高度之差的绝对值不超过1左右子树都是平衡二叉树左右子树都是二叉搜索树#Definitionforabin
独孤--蝴蝶
·
2024-01-15 06:23
leetcode
合并集合(
并查集
应用)
题目传送门:836.合并集合一共有n个数,编号是1∼n1,最开始每个数各自在一个集合中。现在要进行m个操作,操作共有两种:Mab,将编号为a和b的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;Qab,询问编号为a和b的两个数是否在同一个集合中;输入格式第一行输入整数n和m。接下来m行,每行包含一个操作指令,指令为Mab或Qab中的一种。输出格式对于每个询问指令Qab,都要输出
诶嘿嘿kk
·
2024-01-15 02:11
算法
基本数据结构 |
并查集
基本介绍
并查集
主要实现两个操作:合并两个集合查询某个元素的祖宗节点
并查集
的两个优化:路径压缩:O(logn)O(logn)O(logn)按秩合并:O(logn)O(logn)O(logn),代码比较复杂
一根老麻花
·
2024-01-14 22:08
手撕算法
数据结构
c++
算法
并查集
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他