leetcode tarjan 341 lca
强连通分量(Tarjan)
强联通分量与 \(\text{Tarjan}\)(求解) 定义 强连通分量\((\text{Strongly\ Connected\ Components,SCC})\)的定义是:极大的强连通子图。 ——\(\text{OI-Wiki}\) 所谓“极大的强连通子图”,就是说,在子图 \(G'\)(注 ......
tarjan几题
SB tarjan趋势!!! 友情提示:点击题目直接传送 [bzoj1123][POI2008]BLO Description Byteotia 城市有 n 个 towns m条双向roads. 每条 road 连接两个不同的 towns ,没有重复的road. 所有towns连通。 Input F ......
Tarjan 算法(to be updated)
Tarjan 的本质是树形 dp。 有向图连通 - 强连通分量 例题 0:静态连通性查询 给出 \(n\) 个点 \(m\) 条边的有向图,\(q\) 次查询 \(u, v\) 问是否存在 \(u \leadsto v\)。 \(1 \leq n \leq 2\times 10^4\),\(1 \l ......
分治法LeetCode经典例题(c语言解法)
多数元素https://leetcode.cn/problems/majority-element/description/ `//计数 int count(int* nums,int target,int left,int right){ int cnt = 0; for(int i = left ......
Leetcode 2982. 找出出现至少三次的最长特殊子字符串 II
开26个multiset,对于aabaaa,遍历,对第0个multiset push 1 2,然后对第一个multiset push 1,然后又对第0个multiset push 1 2,这时第0个multiset size超过3了,删除最小的元素,然后继续push 3,最后取 \(max_{i=1 ......
使用Cookie在VS Code中登录LeetCode插件
在VS Code的LeetCode插件中使用Cookie登录 1 在浏览器中打开leetcode网页并登录进去 2 按F12查看网页元素,找到graphql,查看其中的cookie,复制该cookie 3 在VS Code中点击登录leetcode的按钮,在登录方式中选择使用cookie登录,然后将 ......
Tarjan
强连通分量 相关的定义 强连通:我们称一个图是强连通的,当且仅当这个图的任意两个点相互可达。 强连通图:一张强连通的图。 强连通子图:一个强连通的子图。 强连通分量 \(\mathcal{(} \text{scc} \mathcal{)}\):极大的两联同子图。 求解强连通分量 \(tarjan\) ......
Tarjan
强连通分量 相关的定义 强连通:我们称一个图是强连通的,当且仅当这个图的任意两个点相互可达。 强连通图:一张强连通的图。 强连通子图:一个强连通的子图。 强连通分量 \(\mathcal{(} \text{scc} \mathcal{)}\):极大的两联同子图。 求解强连通分量 \(tarjan\) ......
leetcode 3.无重复字符的最长子串
leetcode 第三题:无重复字符的最长子串 自己写的: 第一想法:滑动窗口,用两个指针指向窗口的左右边界,用一个HashSet存储窗口内已有的值。另写一个find_first_temp方法用于出现重复字符时寻找新的左边界,左边界更新时也要更新set,将新左边界之前的元素删掉。 public in ......
leetcode 2.两数相加
leetcode 第二题:两数相加 以链表为载体模仿加法进位,同时遍历两个链表,逐位计算它们的和,并与当前位置的进位值相加。如果两个链表的长度不同,则可以认为长度短的链表的后面有若干个 0 。如果链表遍历结束后,有 carry>0,还需要在答案链表的后面附加一个节点,节点的值为 carry。 易错点 ......
leetcode 1.两数之和
leetcode 第一题:两数之和 1.暴力枚举: 最容易想到的方法是枚举数组中的每一个数 x,寻找数组中是否存在 target - x。 当我们使用遍历整个数组的方式寻找 target - x 时,需要注意到每一个位于 x 之前的元素都已经和 x 匹配过,因此不需要再进行匹配。而每一个元素不能被使 ......
leetcode 2706 购买两块巧克力
题目: 2706 购买两块巧克力 思路: 找两个最小值。 分情况讨论 代码 class Solution: def buyChoco(self, prices: List[int], money: int) -> int: # 遍历一遍,找2个最小值 # 找一个最小值我们都会。 # 找次小值,就分两 ......
在不使用内置函数和中间变量的情况交换数字LeetCode力扣题解面试题16.01
#异或法#Kotlin ```Kotlinclass Solution { fun swapNumbers(numbers: IntArray): IntArray { numbers[0] = numbers[0] xor numbers[1] numbers[1] = numbers[1] xo ......
[LeetCode] 1578. Minimum Time to Make Rope Colorful
Alice has n balloons arranged on a rope. You are given a 0-indexed string colors where colors[i] is the color of the ith balloon. Alice wants the rope ......
[LeetCode Hot 100] LeetCode111. 二叉树的最小深度
题目描述 思路 二叉树的最小深度就是第一个叶子节点所在的层数 方法一:前序遍历(递归、dfs) /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeN ......
[LeetCode Hot 100] LeetCode110. 平衡二叉树
题目描述 思路 LeetCode104. 二叉树的最大深度 变种 方法一:后序遍历(递归、dfs) /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tre ......
[LeetCode Hot 100] LeetCode543. 二叉树的直径
题目描述 思路 所谓二叉树的直径,就是左右子树的最大深度之和。 方法一: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; ......
[LeetCode Hot 100] LeetCode104. 二叉树的最大深度
题目描述 思路 熟练掌握二叉树的遍历算法 方法一:层序遍历(迭代)+计数 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; ......
[LeetCode Hot 100] LeetCode102. 二叉树的层序遍历
题目描述 思路 方法一:递归 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * Tree ......
[LeetCode Hot 100] LeetCode144. 二叉树的前序遍历
题目描述 思路 熟练掌握迭代和递归的代码。 递归代码:额外写一个函数void preOrder(TreeNode node, List res) 迭代代码:会用到数据结构——栈。先入栈当前节点的右子节点,再入栈左子节点。 方法一:递归 /** * Definition for a binary tr ......
[LeetCode Hot 100] LeetCode94. 二叉树的中序遍历
题目描述 思路 熟练掌握迭代和递归的代码。 递归:额外写一个函数void inOrder(TreeNode node, List res) 迭代:令cur = root,一直往左子树找,找到最后一个左子节点,当cur为空,就开始处理栈顶元素(将栈顶元素加入结果集),随后将cur设置为右子节点,继续执 ......
[LeetCode Hot 100] LeetCode145. 二叉树的后序遍历
题目描述 思路 递归:额外写一个函数void postOrder(TreeNode node, List res) 迭代: 前序遍历:根 左 右 将前序遍历改造成:根 右 左 然后反转根右左为:左 右 根,即为后序遍历 优化一下: while (!stack.isEmpty()) { TreeNod ......
Leetcode每日一题
目录202312/2512/2612/27 2023 12月往前的应该就不会补题解了,大概有时间会往前一直补到12/1的题解 12/25 1276. 不浪费原料的汉堡制作方案 题目分析: 数学题,解二元一次方程即可 具体过程有$$\left { \begin{array}{c}4x+2y=tomat ......
LCA
ST 表 LCA \(O(n\log n)\) 预处理,\(O(1)\) 查询。空间 \(O(n\log n)\) 考虑欧拉序,设 \(dfn[u]\) 为点 \(u\) 在欧拉序中第一次出现的位置 不妨设 \(dfn[u]<dfn[v]\),\(lca(u,v)\) 即为 \([dfn[u],df ......
【动态规划】leetcode 不同路径问题
题目名称:63. 不同路径 II 链接:https://leetcode.cn/problems/unique-paths-ii/description/ 题目内容: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器 ......
[LeetCode] 2660. Determine the Winner of a Bowling Game
You are given two 0-indexed integer arrays player1 and player2, that represent the number of pins that player 1 and player 2 hit in a bowling game, re ......
Tarjan的学习笔记
\(Tarjan\)的学习笔记 一,\(tarjan\)概述: (1)定义: $~~~~~~~~$$tarjan$是基于深度优先搜索的一种算法,求解图的连通性等问题,巧妙地利用了对图进行深搜时产生的搜索树上的边。 (2)\(tarjan\)中的几种边: \(~~~~~~~~\)树边:父亲与孩子的边。 ......
leetcode 1633. 各赛事的用户注册率
https://leetcode.cn/problems/percentage-of-users-attended-a-contest/?envType=study-plan-v2&envId=sql-free-50 聚合函数分组后计算的是一组内的数据, 分组前我们认为所有数据是一组 本题注意还需要 ......
【LeetCode】131. 分割回文串
题目 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1: 输入:s = "aab" 输出:[["a","a","b"],["aa","b"]] 示例 2: 输入:s = "a" 输出:[["a ......