
leetcode
文章平均质量分 64
qq_42024777
这个作者很懒,什么都没留下…
展开
-
每日两题--2022/01/07
543. 二叉树的直径 描述 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 思路 这道题主要是要捋清楚树的直径长度和左右子树最大深度之间的关系 取max_num为经过最多节点的个数 取左子树的最大深度为L,右子树的最大深度为R 此时max_num即为L+R+1,并且取max_num = max(max_num, L+R+1)更新max_num 返回当前节点的最大深度为max(L + R)+1; 最后返回结果max_原创 2022-01-07 21:02:07 · 128 阅读 · 0 评论 -
每日两题--2022/01/03
添加链接描述 描述 给你一个链表的头节点 head,请你编写代码,反复删去链表中由 总和 值为 0 的连续节点组成的序列,直到不存在这样的序列为止。 删除完毕后,请你返回最终结果链表的头节点。 思路 要删去链表中由 总和 值为 0 的连续节点组成的序列,刚开始想的是先转换成数组,然后通过遍历,找出和为0的序列,以此解决问题,但是复杂度比较高。 可以通过前缀和来解决,当出现相同的前缀和是,则中间的序列和为0,直接全部摘链 new一个虚拟头node指向head,注意后续遍历中操作链表node不能动,均需用原创 2022-01-03 18:08:32 · 446 阅读 · 0 评论 -
每日两题--2022/01/02
905. 按奇偶排序数组 描述 给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。 你可以返回满足此条件的任何数组作为答案。 思路 初始idx为-1来记录奇数的位置,遍历数组 如果为偶数,则idx不等于-1时交换奇偶数位置 如果为基数,则idx等于-1时更新idx位置 最后更新完的数组就是返回的结果 题解 class Solution { public int[] sortArrayByParity(int[] nums) { in原创 2022-01-02 14:52:57 · 265 阅读 · 0 评论 -
每日两题--2021/11/29
面试题 17.08. 马戏团人塔 描述 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上。出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一点。已知马戏团每个人的身高和体重,请编写代码计算叠罗汉最多能叠几个人。 思路 其实是寻找一个数组的最长升序排列,我们将身高,体重变成二维联合数组,按以一维(身高)元素升序排列,这样只要找到二维(体重)元素其最长的升序排列就行(需要注意,身高相同时,体重要降序排列,防止将同一身高加入) 假设dp是排列后的体重数组,res是目前最大长度 遍历体重数原创 2021-11-29 21:30:16 · 142 阅读 · 0 评论 -
每日两题--2021/11/27
1588. 所有奇数长度子数组的和 描述 给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。 子数组 定义为原数组中的一个连续子序列。 请你返回 arr 中 所有奇数长度子数组的和 。 思路 尝试寻找数组中每一个数相加的次数,及系数 对于第1个元素的系数a[1] = n / 2 + n % 2,n为数组长度; 对于第2个元素的系数a[2] = a[1] - 1 + (n- 1) / 2 + (n -1) % 2; 不难得出,对于第i个元素的系数a[i] = a[i] = a[i -原创 2021-11-27 21:34:49 · 233 阅读 · 0 评论