LeetCode题目总结
LeetCode题目总结
小镇攻城狮
吃饭的家伙要拿稳咯
展开
-
【优先队列】合并多个有序链表
原题连接 【23. 合并K个升序链表】困难 【786. 第 K 个最小的素数分数】困难 思路 优先队列 # 抓住关键字:每一个链表都是有序的 假设有如下3个链表 1 -> 4 -> 5 1 -> 3 -> 4 2 -> 6 比较每一个链表的头部元素,找到其中最小的节点,放入最终的结果中。 然后依次重复上述的步骤,直到所有的链表都为null 第一轮 4 -> 5 1 -> 3 -> 4 2 -> 6 res = [1] 第二轮 4 ->原创 2021-11-29 17:44:55 · 783 阅读 · 0 评论 -
【链表】lc141.判断链表是否有环
原题链接 【141. 环形链表】简单 【142. 环形链表 II】中等 思路 快慢双指针 参考代码(Java) 141 public boolean hasCycle(ListNode head) { ListNode fast = head; ListNode slow = head; while(fast!=null && fast.next!=null){ fast = fast.next.next; slow = s原创 2021-10-26 12:20:58 · 120 阅读 · 0 评论 -
【二叉树】637. 二叉树的层平均值
原题链接 题目描述 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。 思路 可以使用层序遍历,通过一个队列存储节点的值。 使用一个for循环,遍历每一层。 参考代码(Java) public class LC_637 { List<Double> res = new ArrayList<>(); public List<Double> averageOfLevels(TreeNode root) { bfs(root);原创 2021-07-01 11:06:31 · 1828 阅读 · 0 评论 -
【二叉树】671. 二叉树中第二小的节点
原题链接 题目描述 给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0。 如果一个节点有两个子节点的话,那么该节点的值等于两个子节点中较小的一个。 思路 分析题干包含的信息: 根节点就是最小值 在递归方法中寻找比根节点大的,最小的节点即可 参考代码1(Java) 这种方式相当于穷举,遍历所有节点,然后找出第二小的节点。 虽然也可以通过样例,但是更推荐第二种解法,更加好地使用了题干的信息。 class Solution { int firstMin =原创 2021-06-28 16:16:50 · 138 阅读 · 0 评论 -
【二叉树】501. 二叉搜索树中的众数
原题链接 题目描述 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 如果众数超过1个,不需考虑输出顺序 思路 看到二叉搜索树(BST),第一个反应就是要使用中序遍历。 中序遍历后,得到一个非递减的集合,然后统计其中的众数即可。 要注意第一个节点的处理方式 集合只能转换成引用类型的数组,包括字符串数组、包装类数组,不能转换成基本类型数组,但是可以转换成基本类型的二维数组。 参考代码(Java) public class LC_501 { public原创 2021-06-28 11:24:42 · 146 阅读 · 0 评论 -
【二叉树】257. 二叉树的所有路径
原题链接 题目描述 给定一个二叉树,返回所有从根节点到叶子节点的路径。 思路 这是一道难度为简单的题,直接DFS就能解出来。 唯一要注意的就是递归的方法中,参数要传String类型,而不能是StringBuilder类型。 因为String类型有变化时,都会新建一个变量; 而StringBuilder会在原来的变量的基础上修改,导致统计路径时,路径节点有重复的 参考代码(Java) public class LC_257 { List<String> res = new ArrayL原创 2021-06-28 10:09:06 · 136 阅读 · 0 评论 -
【LC周赛241】1865. 找出和为指定值的下标对
原题链接 题目描述 实现 FindSumPairs 类: FindSumPairs(int[] nums1, int[] nums2) 使用整数数组 nums1 和 nums2 初始化 FindSumPairs 对象。 void add(int index, int val) 将 val 加到 nums2[index] 上,即,执行 nums2[index] += val 。 int count(int tot) 返回满足 nums1[i] + nums2[j] == tot 的下标对 (i, j) 数目原创 2021-05-17 19:16:19 · 8847 阅读 · 0 评论 -
【LC周赛241】1864. 构成交替字符串需要的最小交换次数
原题链接 题目描述 给你一个二进制字符串 s ,现需要将其转化为一个 交替字符串 。请你计算并返回转化所需的 最小 字符交换次数,如果无法完成转化,返回 -1。 交替字符串 是指:相邻字符之间不存在相等情况的字符串。例如,字符串 “010” 和 “1010” 属于交替字符串,但 “0100” 不是。 任意两个字符都可以进行交换,不必相邻 。 示例 输入:s = “111000” 输出:1 解释:交换位置 1 和 4:“111000” -> “101010” ,字符串变为交替字符串。 思路 最终的字符串原创 2021-05-17 19:08:54 · 8986 阅读 · 0 评论 -
LeetCode题目索引
字符串: 14.最长公共前缀原创 2021-01-30 07:59:12 · 139 阅读 · 0 评论
分享