leetcode tarjan 341 lca

LeetCode 剑指 Offer 13. 机器人的运动范围

#题目链接:[LeetCode 剑指 Offer 13. 机器人的运动范围](https://leetcode.cn/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/) ##题意: **地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] ......
机器人 LeetCode 范围 机器 Offer

leetcode day2 977 209 59

[toc] #977 ##暴力法 直接数组中每个元素平方后用sort进行排序 ##双指针法 数组是有序的,平方后最大的元素存在于nums的两端,所以就定义两个指向两端的指针, 然后比较两端绝对值的大小,大的加入新定义的ans数组,并且指针向内移动 ``` vector ans (nums.size( ......
leetcode day2 day 977 209

Leetcode238. 除自身以外数组的乘积

``` class Solution { public: vector productExceptSelf(vector& nums) { vector q; int t=1; for(auto i:nums) { q.push_back(t); t*=i; } t=1; for(int i=num ......
乘积 数组 Leetcode 238

LeetCode -- 787. K 站中转内最便宜的航班

有边数限制的最短路 1、动态规划 f[i][j]表示恰好通过i次,从起点到大j这个点的最短路径。 class Solution { private: static constexpr int INF = 10000 * 101 + 1; public: int findCheapestPrice(i ......
航班 LeetCode 787

[LeetCode] 2542. Maximum Subsequence Score

You are given two 0-indexed integer arrays nums1 and nums2 of equal length n and a positive integer k. You must choose a subsequence of indices from n ......
Subsequence LeetCode Maximum Score 2542

leetcode-20. 有效的括号

https://leetcode.cn/problems/valid-parentheses/ 20. 有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合 ......
括号 leetcode 20

[LeetCode] 931. Minimum Falling Path Sum

Given an n x n array of integers matrix, return the minimum sum of any falling path through matrix. A falling path starts at any element in the first ......
LeetCode Falling Minimum Path 931

LeetCode —— 子串

560. 和为 K 的子数组(哈希表) 官方题解:https://leetcode.cn/problems/subarray-sum-equals-k/solution/he-wei-kde-zi-shu-zu-by-leetcode-solution/ 假设 left 到 right 下标的子数组 ......
LeetCode

LeetCode —— 哈希表

128. 最长连续序列 不要求在位置数组中是连续的 输入:nums = [100,4,200,1,3,2] 输出:4 解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。 两种最朴素的解法之一: 先排序,从前往后找最长连续上升序列即可。该思路简单有效,但是复杂度已经至少有 O(nlo ......
LeetCode

【学习笔记】Tarjan

# 前言: > 凡事都得靠自己 --bobo - 催隔壁 [K8He](https://www.cnblogs.com/Keven-He/) n 天了让他写Tarjan的学习笔记,但貌似还没有动静,所以决定自己写一个。 # 正文 - 本文配套题单:[14.图论-tarjan(强连通分量、割点、割边) ......
笔记 Tarjan

Leetcode - 动态规划总结(必看!!!)

一、labuladong动态规划模板思路 wiki:https://labuladong.gitee.io/algo/di-ling-zh-bfe1b/dong-tai-g-1e688/ 题目: 动态规划模板思路: 二、我自己如何理解【状态】【选择】 以714题目《最佳时机去买卖股票+手续费》为例子 ......
Leetcode 动态

LeetCode 热题 100 之 283. 移动零

#题目描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums = [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums = [0] ......
LeetCode 100 283

leetcode206反转链表

每个节点的next只有一个 因为要反转。必定需要存储之前的节点。 而现在的节点要根据原来的next进行更新,因为now->next已经更新为前面的节点,所以要先存储之前的now->next ListNode* pre=nullptr;//每个链表结尾都要使用nullptr ListNode* now ......
leetcode 206

LeetCode 剑指 Offer 11. 旋转数组的最小数字

#题目链接:[LeetCode 剑指 Offer 11. 旋转数组的最小数字](https://leetcode.cn/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/?envType=study-plan-v2&envId=coding-int ......
数组 LeetCode 数字 Offer 11

LeetCode 剑指 Offer 12. 矩阵中的路径

#题目链接:[LeetCode 剑指 Offer 12. 矩阵中的路径](https://leetcode.cn/problems/ju-zhen-zhong-de-lu-jing-lcof/?envType=study-plan-v2&envId=coding-interviews) ##题意: ......
矩阵 路径 LeetCode Offer 12

LeetCode 234. 回文链表

``` class Solution { public: ListNode* reverse(ListNode* head)//翻转以head为头节点的链表 { if(!head||!head->next) return head; auto a=head,b=head->next; while(b ......
回文 LeetCode 234

LeetCode -- 918. 环形子数组的最大和

遇到环形问题一般有两种考虑方法: 1.破环成链 2.分为数组中间部分和数组两边部分分别考虑 本题采用第二种考虑方法,将原数组分为中间部分和两边部分分别考虑。中间部分即为子数组最大和,两边部分计总和减去中间部分最小和。 class Solution { public: int maxSubarrayS ......
环形 数组 LeetCode 918

LeetCode 热题 100 之 128. 最长连续序列

#题目描述 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 **O(n)**的算法解决此问题。 示例 1: 输入:nums = [100,4,200,1,3,2] 输出:4 解释:最长数字连续序列是 [1, 2, 3, ......
序列 LeetCode 100 128

LeetCode -- 826. 安排工作以达到最大收益

方法一:二分加枚举 通过二分快速查找小于某个难度值的最大价值。 class Solution { public: int maxProfitAssignment(vector<int>& difficulty, vector<int>& profit, vector<int>& worker) { ......
收益 LeetCode 826

7-11 leetcode 2612

请你编写一个异步函数,它接收一个正整数参数 millis ,并休眠这么多毫秒。要求此函数可以解析任何值。 ps: promise 期约函数 (异步函数)的使用 ,promise 是一个对象 new promise /** * @param {number} millis */ async funct ......
leetcode 2612 11

7-11 leetcode 2619

请你编写一段代码实现一个数组方法,使任何数组都可以调用 array.last() 方法,这个方法将返回数组最后一个元素。如果数组中没有元素,则返回 -1 。 ps:this 环境变量的使用 ,this.length 的返回值是数字类型 代码实现: <script> //在数组的原型写扩展方法可以给所 ......
leetcode 2619 11

[笔记]Tarjan算法求强联通分量(SCC)学习笔记

# [笔记]Tarjan算法求强联通分量(SCC)学习笔记 ## P1 定义 1. **dfs搜索树**:就是在搜索过程中,所构成的树状结构,并且几个节点的搜索树中不包括他的父亲。 2. **树边、横叉边、返祖边、前向边**:以下图举例子: ![1](https://oi-wiki.org/grap ......
笔记 分量 算法 Tarjan SCC

LeetCode 剑指 Offer 08. 二叉树的下一个节点

## 题目:二叉树的下一个节点 **给定一棵二叉树的其中一个节点,请找出中序遍历序列的下一个节点。(树的后继)** **注意:** - **如果给定的节点是中序遍历序列的最后一个,则返回空节点;** - **二叉树一定不为空,且给定的节点一定不是空节点;** ## 解题思路 ![](https:// ......
节点 LeetCode Offer 08

LeetCode 剑指 Offer 04. 二维数组中的查找

#题目链接:[LeetCode 剑指 Offer 04. 二维数组中的查找](https://leetcode.cn/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/) ##题意: **在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序 ......
数组 LeetCode Offer 04

【线段树】【leetcode 729. 我的日程安排表 I】

class MyCalendar { class Seg { int l; int r; boolean val; Seg left; Seg right; public Seg(int x, int y) { this.l = x; this.r = y; this.val = false; th ......
线段 安排表 日程 leetcode 729

LeetCode 146. LRU 缓存()

[原题解](https://leetcode.cn/problems/lru-cache/solutions/259678/lruhuan-cun-ji-zhi-by-leetcode-solution/) ###题目 ![](https://img2023.cnblogs.com/blog/130 ......
缓存 LeetCode 146 LRU

leetcode328奇偶链表

思路:先将寄链表连接起来;再将偶链表连接起来;最后将寄链表和偶链表一起连起来。 首先需要一个指针结构体去记录下偶链表的表头。最后才能将两个链表连接起来。 ListNode* odd=head; LisrNode* even=head->next; ListNode* evenhead=head->n ......
奇偶 leetcode 328

最近公共祖先(LCA)

# 最近公共祖先(LCA) ## 主要思路:一个节点的$2^n$的祖先是那个节点$2^{n-1}$的祖先的$2^{n-1}$的祖先 ## 也就是说$f[x][n]=f[f[x][n-1]][n-1]$ ## 还要计算$log_2$的值,记录深度 ```c++ #include using names ......
祖先 LCA

tarjan算法

# tarjan算法(求强连通分量)(缩点) ## 强连通:两个点相互可达 ## 强连通分量:集合中的点两两可达 ## 思路:记录自己的时间戳dfs与能到达的最小时间戳low,先dfs搜索完自己能到达的点,如果更新后的最小时间戳low与己的时间戳dfs相等说明自己就是那个强连通分量顶点,如果不相等说 ......
算法 tarjan

LeetCode 周赛 353(2023/07/09)看似没考 LIS 最长递增子序列,好像又考了

> **本文已收录到 [AndroidFamily](https://github.com/pengxurui/AndroidFamily),技术和职场问题,请关注公众号 [彭旭锐] 和 [BaguTree Pro] 知识星球提问。** - 往期回顾:[LeetCode 单周赛第 352 场 · 一 ......
序列 LeetCode 2023 353 LIS