数据结构
文章平均质量分 71
ZNineSun
大道至简,返璞归真
展开
-
把二叉搜索树转换为累加树
它就是想让我们求树中大于等于该节点值的所有节点的总和,啥意思呢,比如题目示例1中4这个结点,那么我们需要相加的元素应该是全部大于等于4的,根据二叉搜索树的特性,我们只需全部遍历4的右子树,并且在遍历过程中将结点值相加得到的最后结果便是结点4的新值,大于等于4的值有:4,6,5,7,8,很明显全是其右子树的值。给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。原创 2022-09-10 22:30:10 · 231 阅读 · 0 评论 -
猿创征文|461. 汉明距离
今天给大家带来一道位运算类型的题目,题目很简单,但是很多人对于位运算没有一个比较清晰的认知,今天通过这道题目带大家了解一下。这道题其本质就是让你将x,y转化为2进制,然后计算两个二进制之间不同的位数。两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。就是从最右边也就是最低位开始比较,判断该为是否是1,如果是1,则。我们无需直接将x,y进行二进制的转换,我们可以一位一位的去比较。给你两个整数 x 和 y,计算并返回它们之间的汉明距离。上面这个代码什么意思呢?...原创 2022-09-01 10:32:12 · 120 阅读 · 0 评论 -
437. 路径总和 III
后来我才注意到,虽然树的每一个结点的都是int类型,但是整型超过128之后就无法通过==来进行对比,所以声明为 long或者更高精度的值都可以。给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。今天给大家带来一道深度优先遍历的题目,要知道树的前序遍历就是深度优先遍历,按照这个思路很多题目就会很轻松的解决。这道题我只需要穷举就好,思路也很简单,我们只需记住每一个结点的父节点,然后一直向上去找,一直找到根节点为止。...原创 2022-08-31 16:35:24 · 179 阅读 · 0 评论 -
那些年你啃过的ConcurrentHashMap
有的童鞋在看Juc这一块的时候会去背诵源码,将方法的调用链都讲的头头是道,我认为没有必要,相反面试官可能会觉得你过于抽象,背的这么清楚。并发的核心在于如何用手段去解决可能遇到的安全问题,并且让它更高效点,面试的目的也是为了体现你思维能力。原创 2022-08-21 17:30:57 · 220 阅读 · 0 评论 -
287.寻找重复数
所以我们在重新一个指针finder指向起始位置,让慢指针从相遇位置一步一步的往前走,刚好会在环的入口处相遇,因为在finder指针刚好走a步的时候,慢指针走了(k-1)L+c步,而(k-1)L相当于绕环走了若干圈又回到和快指针相遇的位置,而c步又刚好回到环的入口。给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。很明显这个链表是有环存在的,这是因为重复元素所导致的,所以解决本题的关键就是找到这个链表的。......原创 2022-08-05 15:23:11 · 303 阅读 · 0 评论 -
排序算法—归并排序
注意一般而言,对于N个元素进行k路归并排序时,排序的趟数m满足k^m=N,从而m=logN,又考虑到m为整数,所以m=「logN]。,先看下图,体会一下归并排序的过程。归并的含义是将两个或两个以上的。所谓2路归并是指两两合并。...原创 2022-07-23 19:19:06 · 325 阅读 · 0 评论 -
图应用详解
在了解最小生成树之前,大家应该先知道什么叫生成树? 生成树:所有顶均由边链接在一起,但不存在回路的图。 生成树具有以下特点:如下图所示: 知道了什么叫生成树了,在了解一下什么叫最小生成树构建最小生成树的的算法主要有两个,Prim算法、Kruskal算法,他们都是基于贪心算法的策略,我下面一一讲解一下。初始时从图中任意取一个顶点加入树T,此时树中只有一个顶点,之后选择一个与当前T中顶点集合距离最近的顶点,并将该顶点和相应的边加入T,每次操作后T中的顶点数和边数都增加1,依次类推,直至图中所有的顶点都加入T中,原创 2022-07-06 00:45:20 · 1537 阅读 · 1 评论