leetcode tarjan 341 lca

算法解析:LeetCode——机器人碰撞和最低票价

摘要:本文由葡萄城技术团队原创。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 机器人碰撞 问题: 现有 n 个机器人,编号从 1 开始,每个机器人包含在路线上的位置、健康度和移动方向。 给你下标从 0 开始的两个整数数组 positions、health ......
票价 机器人 算法 LeetCode 机器

[LeetCode] 2282. Number of People That Can Be Seen in a Grid_Medium tag: stack.

You are given an m x n 0-indexed 2D array of positive integers heights where heights[i][j] is the height of the person standing at position (i, j). A ......
Grid_Medium LeetCode Number Medium People

Data structure - Stack 小结及leetcode相关题目

Linear data structure - Stack O(1) for push O(1) for pop O(1) for top - Basic skills 先进后出 [LeetCode] 232. Implement Queue using Stacks_Easy tag: stack ......
小结 structure leetcode 题目 Stack

[LeetCode] 1944. Number of Visible People in a Queue_Hard tag: stack

There are n people standing in a queue, and they numbered from 0 to n - 1 in left to right order. You are given an array heights of distinct integers ......
Queue_Hard LeetCode Visible Number People

leetcode122买卖股票的最佳时机——贪心、动态规划

题目描述: 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大 利润 。 示例 1: 输入:prices = ......
时机 leetcode 股票 动态 122

LeetCode 383 赎金信

LeetCode 383 赎金信 1. 题目地址 https://leetcode.cn/problems/ransom-note/?envType=study-plan-v2&envId=top-interview-150 2. 题解 这道题是一道哈希表的经典例题,具体步骤如下: 1. 定义哈希表 ......
LeetCode 383

LeetCode 392 判断子序列

LeetCode 392 判断子序列 1. 题目地址 https://leetcode.cn/problems/is-subsequence/?envType=study-plan-v2&envId=top-interview-150 2. 题解 采用双指针算法,具体步骤如下: 1. i指针指向s的 ......
序列 LeetCode 392

leetcode189旋转数组解决——局部旋转 (C/C++/python)

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1, ......
数组 局部 leetcode python 189

Tarjan算法求强连通分量 <笔记与补充>

pecco大佬的博客 其中有Tarjan算法的正确性证明。 对求有向图强连通分量的tarjan算法原理的一点理解by naturerun 讲解视频:形象的例子,基础 先贴Tarjan的板子: vector<int> G[MAXN]; int n; int dfn[MAXN], low[MAXN]; ......
分量 算法 笔记 Tarjan lt

LeetCode49——字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [["bat"],["nat" ......
字母 LeetCode 49

[LeetCode] 2578. Split With Minimum Sum

Given a positive integer num, split it into two non-negative integers num1 and num2 such that: The concatenation of num1 and num2 is a permutation of  ......
LeetCode Minimum Split 2578 With

三个主要降维技术对比介绍:PCA, LCA,SVD

随着数据集的规模和复杂性的增长,特征或维度的数量往往变得难以处理,导致计算需求增加,潜在的过拟合和模型可解释性降低。降维技术提供了一种补救方法,它捕获数据中的基本信息,同时丢弃冗余或信息较少的特征。这个过程不仅简化了计算任务,还有助于可视化数据趋势,减轻维度诅咒的风险,并提高机器学习模型的泛化性能。 ......
三个 技术 PCA LCA SVD

LeetCode 58 最后一个单词的长度

LeetCode 58 最后一个单词的长度 1. 题目地址 https://leetcode.cn/problems/length-of-last-word/description/?envType=study-plan-v2&envId=top-interview-150 2. 题解 这道题由于要 ......
单词 长度 LeetCode 58

【LeetCode】最小处理时间

题目 你有 n 颗处理器,每颗处理器都有 4 个核心。现有 n * 4 个待执行任务,每个核心只执行 一个 任务。 给你一个下标从 0 开始的整数数组 processorTime ,表示每颗处理器最早空闲时间。另给你一个下标从 0 开始的整数数组 tasks ,表示执行每个任务所需的时间。返回所有任 ......
LeetCode 时间

连通性与 Tarjan

强连通分量和 Tarjan 强连通分量(Strongly Connected Components,SCC),指的是极大的连通子图。 tarjan 算法,用于求图的强连通分量。 dfs 生成树 有向图的 dfs 生成树大致分为四种边: 树边(tree edge):示意图中以黑色边表示,每次搜索找到一 ......
Tarjan

算法训练day29 LeetCode 39.40.131

算法训练day29 LeetCode 39.40.131 39.组合总和 题目 39. 组合总和 - 力扣(LeetCode) 题解 代码随想录 (programmercarl.com) class Solution { private: vector<vector<int>> result; ve ......
算法 LeetCode day 131 29

Tarjan 算法求强连通分量 学习笔记

前言 何为强连通分量? 在一个有向图中,若这个图的子图中,任意两点间可以相互到达,那么这个子图就叫做强连通分量。 Tarjan 算法求强连通分量 模板题:Luogu P2863 [USACO06JAN] The Cow Prom S 思想 Tarjan算法过程: 以下图为例做演示。 我们定义两个数组 ......
分量 算法 笔记 Tarjan

Tarjan强连通分量详解

1、简介: 在阅读下列内容之前,请务必了解 图论相关概念 中的基础部分。 强连通的定义是:有向图 G 强连通是指,G 中任意两个结点连通。 强连通分量(Strongly Connected Components,SCC)的定义是:极大的强连通子图。 这里要介绍的是如何来求强连通分量。 2、引入: 在 ......
分量 Tarjan

算法训练day28 LeetCode 216.17.

算法训练day28 LeetCode 216.17. 216.组合总和III 题目 216. 组合总和 III - 力扣(LeetCode) 题解 代码随想录 (programmercarl.com) class Solution { private: vector<vector<int>> res ......
算法 LeetCode day 216 28

算法训练day27 回溯算法概述、LeetCode77

算法训练day27 回溯算法概述、LeetCode77. 回溯算法 与递归函数联系,是一种纯暴力搜索方式 解决问题(抽象为树形结构 组合问题(无序 切割问题 子集问题 排列问题(有序 棋盘问题(n皇后、解数独 回溯算法模板 void backtracking(参数) { if (终止条件) { 存放 ......
算法 LeetCode day 27 77

LeetCode——98. 验证二叉搜索树

98. 验证二叉搜索树 本次博客,我将记录验证二叉搜索树 由于二叉搜索树的性质是每个节点的左子树中的全部节点数据小于它,而右子树中的全部节点的数据都大于它,因此可以通过这条性质来进行判断 刚上手的时候直接就做了,没考虑到局部最优而非全局最优的情况,遇到这种测试用例直接寄了: 是的,虽然3小于6,7大 ......
LeetCode 98

LeetCode 13 罗马数字转整数

LeetCode 13 罗马数字转整数 1. 题目地址 https://leetcode.cn/problems/roman-to-integer/description/ 2. 题解 这道题的解题过程非常简单,具体如下: 1. 我们需要将罗马数字对应的数,存到一个哈希表中。待用到时,直接使用即可。 ......
整数 LeetCode 数字 13

[Leetcode Weekly Contest]365

链接:LeetCode [Leetcode]2873. 有序三元组中的最大值 I 给你一个下标从 0 开始的整数数组 nums 。 请你从所有满足 i < j < k 的下标三元组 (i, j, k) 中,找出并返回下标三元组的最大值。如果所有满足条件的三元组的值都是负数,则返回 0 。 下标三元组 ......
Leetcode Contest Weekly 365

Leetcode刷题模版总结

1. 双指针 双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多个数组的多个指针。 1)滑动窗口 若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的区域即为当前的窗口),经常用于区间搜索。 例题: class Solution { publ ......
模版 Leetcode

Leetcode刷题83. 删除排序链表中的重复元素

给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 示例 1: 输入:head = [1,1,2] 输出:[1,2] 示例 2: 输入:head = [1,1,2,3,3] 输出:[1,2,3] 提示: 链表中节点数目在范围 [0, 300]  ......
Leetcode 元素 83

浅谈关于LCA

prologue 本身只会 tarjan 和 倍增法求LCA 的,但在发现有一种神奇的\(O(1)\) 查询 lca 的方法,时间优化很明显。 main body 倍增法 先讨论倍增法,倍增法求 lca 是一种很常见普遍的方法,这里直接放代码了,其本身的内核就是让较低点每次都跳 $ 2 ^ k $ ......
LCA

LeetCode——95. 不同的二叉搜索树 II

本次博客,我将记录leetcode95,不同的二叉搜索树 95. 不同的二叉搜索树 II 本题要求我们从1~n构造不同的二叉搜索树 因为好久不碰数据结构了,导致对二叉搜索树的概念十分模糊 以下是一些概念: 二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树。 性质 ......
LeetCode 95 II

[学习笔记] Tarjan 连通性全家桶

拜谢陈老师的 PPT!!! 无向图 割点 若点 \(x\) 不为搜索树的根节点,则 \(x\) 是割点当且仅当搜索树上存在一个 \(x\) 的子节点 \(y\) 满足: \(dfn_x\le low_y\)。特别地,当 \(x\) 是搜索树的根节点时,则 \(x\) 是割点当且仅当有两个点 \(y_ ......
全家 笔记 Tarjan

LeetCode 88 合并两个有序数组

Hello World ......
数组 LeetCode 两个 88

LeetCode 周赛上分之旅 #49 再探内向基环树

⭐️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问。 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode ......
LeetCode 之旅 49