
刷题/算法
文章平均质量分 60
LunarWave
这个作者很懒,什么都没留下…
展开
-
LeetCode第78题
我们可以通过二进制的方式来计算,对于所有在[0,2^length)之间的数字都可以看作是原数组一个子集的表示,对于当前数字如果某一位是1就表示需要选择对应的元素,如果是0就表示不选。这题让返回数组的所有子集,把原数组中的某些元素去掉之后就是其中的一个子集。对于每个元素都有两种状态,一种是选择一种是不选择,所以总的子集数量是2^length,其中length是数组的长度。输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]输入:nums = [0]输出:[[],[0]]原创 2024-03-20 12:18:41 · 449 阅读 · 1 评论 -
LeetCode第236题
这题让找出两个节点的最近公共节点,有两种解决方式,一种是从两个要查找的节点到根节点上的路径都连接起来,那么这两条路径就相当于两个链表了,这题就变成了查找两个链表的第一个公共节点了。输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1。输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4。3,如果两个节点分别在两棵子树上,说明当前节点就是他俩的最近公共祖先节点,直接返回当前节点即可。原创 2024-02-29 16:51:06 · 465 阅读 · 0 评论 -
LeetCode第2583题
给你一棵二叉树的根节点 root 和一个正整数 k。树中的层和是指同一层上节点值的总和。返回树中第 k 大的层和(不一定不同)。注意,如果两个节点与根节点的距离相同,则认为它们在同一层。关于二叉树的BFS遍历我们前面也多次讲过,需要使用一个队列来记录每层的节点,当遍历队列中节点的时候需要累加当前层的和,顺便把下一层的节点也添加到队列中。这题让返回的是第k大的层和,可以使用BFS计算每一层节点的和,然后对这些和从大到小排序,最后取出第k个值即可。第 2 大的层和等于 13。:最大的层和是 3。原创 2024-02-28 17:26:41 · 262 阅读 · 0 评论