leetcode two sum

算法训练day22 LeetCode235

算法训练day22 LeetCode235.701.450. 235. 二叉搜索树的最近公共祖先 题目 235. 二叉搜索树的最近公共祖先 - 力扣(LeetCode) 题解 代码随想录 (programmercarl.com) 对于二叉树,可以用递归回溯的方式 对于二叉搜索树,由其根节点大于左右子 ......
算法 LeetCode day 235 22

算法训练day21 LeetCode 530

算法训练day21 LeetCode 530.501.236 530二叉搜索树的最小绝对差 题目 530. 二叉搜索树的最小绝对差 - 力扣(LeetCode) 题解 代码随想录 (programmercarl.com) 中序遍历二叉平衡树 --> 有序数组 --> 遍历数组得到最小绝对差 clas ......
算法 LeetCode day 530 21

刷这几道LeetCode,掌握哈希表的三种类型

基础知识 常用代码 哈希表一共有3种哈希结构,分别是数组、set(集合)、map(映射) 数组 数组就是把不同的元素映射到不同的地址运用数组创建哈希表,应当遵循以下两个原则: 1.所映射的元素的数值种类不多(比如26个字母) 2.映射关系比较好表达(比如26个字母,就可以用该元素-'a'作为映射) ......
LeetCode 类型

[Leetcode Weekly Contest]364

链接:LeetCode [Leetcode]2864. 最大二进制奇数 给你一个 二进制 字符串 s ,其中至少包含一个 '1' 。 你必须按某种方式 重新排列 字符串中的位,使得到的二进制数字是可以由该组合生成的 最大二进制奇数 。 以字符串形式,表示并返回可以由给定组合生成的最大二进制奇数。 注 ......
Leetcode Contest Weekly 364

Binomial Sum 学习笔记

这是EI写的一个神秘科技。我只能把它最简单的东西讲述出来。 用于\(O(k+\log n)\)复杂度解决一类求和问题。 使用条件:\(f(x)\)微分有限,话句话说,存在\(f\)的微分方程。 如果我容易知道\(\displaystyle\sum_{i=0}^{n}a_i[x^i]G(x)^k,k\ ......
Binomial 笔记 Sum

Technocup 2022 - Elimination Round 2 Two Arrays

给定两个数组 \(a_1, a_2, \cdots, a_n\) 和 \(b_1, b_2, \cdots, b_n\) 。 定义 \(a\) 的一次操作: 选择任意一个非负整数 \(k(0 \leq k \leq n)\) 。 选择任意 \(k\) 个独立的下标 \(i_1 \leq i_2 \l ......
Elimination Technocup Arrays Round 2022

leetcode17、77

回溯算法可以当作是二叉树的结构进行分析,看在叶节点的位置是什么条件收获结果 每个抛进去的结果都是到叶子节点的路径 以leetcode17为例: 每一层遍历的是每一个号码对应的字符串,当号码全部遍历完成就可以返回结果,所以终止条件是(index==string.length());index是层数,s ......
leetcode 17

[LeetCode] 2582. Pass the Pillow

There are n people standing in a line labeled from 1 to n. The first person in the line is holding a pillow initially. Every second, the person holdin ......
LeetCode Pillow 2582 Pass the

CF1879D Sum of XOR Functions

异或和按位处理的典型例题。 要求所有子区间异或和乘区间长度的总和,朴素的方法是 \(O(n^2)\) 地枚举区间,显然无法通过。 因为涉及异或和,而异或运算不进位,故自然地想到把 \(a_i\) 写成二进制形式,单独研究每一位的贡献,最后再合并。这是处理此类问题的一般思路。 1. 二进制拆分 比方说 ......
Functions 1879D 1879 Sum XOR

LeetCode54.螺旋数组

本题关键在于模拟数组螺旋的步骤,使用 flag 二维数组标识矩阵某位置是否被访问过,使用 turn 变量指示当前寻找的方向, turn 为0时,代表向右查找, turn 为1时,代表向下查找, turn 为2时,代表向左查找, turn 为3时,代表向上查找,具体的代码如下: class Solut ......
数组 螺旋 LeetCode 54

算法训练day20 LeetCode654

算法训练day20 LeetCode654.617.700.98 654.最大二叉树 题目 654. 最大二叉树 - 力扣(LeetCode) 题解 代码随想录 (programmercarl.com) 使用递归 返回节点地址,输入父节点地址,数组 终止条件是输入地数组为空 单层操作: 如果输入数组 ......
算法 LeetCode day 654 20

two-sat模板

P4782 【模板】2-SAT 问题 就是给关系进行连边,然后判断是否存在矛盾 输出方案的时候,就是在拓扑图上沿着反边走,但实际上tarjan求强连通分量已经排好序了 编号小的scc就是在拓扑序中排在后面的强连通分量 #include<cstdio> #include<algorithm> #inc ......
模板 two-sat two sat

[LeetCode] 1353. Maximum Number of Events That Can Be Attended 最多可以参加的会议数目

You are given an array of events where events[i] = [startDayi, endDayi]. Every event i starts at startDayi and ends at endDayi. You can attend an even ......
数目 LeetCode Attended Maximum 会议

LeetCode 周赛上分之旅 #47 前后缀分解结合单调栈的贡献问题

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

AT_abc321_f [ABC321F] #(subset sum = K) with Add and Erase 题解

AT_abc321_f [ABC321F] #(subset sum = K) with Add and Erase 题解 题目大意 现在有一个空箱子。给你两个数 \(Q, K\),然后给你 \(Q\) 行,每一行代表一个操作: \(+ x\),即向箱子里加一个权值为 \(x\) 的小球。 \(- ......
题解 321 AT_abc subset Erase

算法训练day18 LeetCode 513

算法训练day18 LeetCode 513.112.106 513.找树左下角的值 题目 513. 找树左下角的值 - 力扣(LeetCode) 题解 代码随想录 (programmercarl.com) 递归方式 单独数据存储最大深度,和此深度的结点值 递归后要注意回溯 class Soluti ......
算法 LeetCode day 513 18

Leetcode刷题21.合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 = [], l2 = [] 输出:[] 示例 3: 输入:l1 = [] ......
Leetcode 两个 21

算法训练day8 LeetCode 344

算法训练day8: LeetCode 344.541.151.剑指offer05.58. 344.反转字符串 题目 344. 反转字符串 - 力扣(LeetCode) 题解 代码随想录 (programmercarl.com) class Solution { public: void revers ......
算法 LeetCode day8 day 344

P6667 [清华集训2016] 如何优雅地求和 -Binomial Sum

题面 有一个多项式函数 \(f(x)\),最高次幂为 \(x^m\),定义变换 \(Q\): \[Q(f,n,x)=\sum_{k=0}^{n}f(k)\binom{n}{k}x^k(1-x)^{n-k} \]现在给定函数 \(f\) 和 \(n,x\),求 \(Q(f,n,x)\bmod99824 ......
Binomial P6667 6667 2016 Sum

算法训练day17 LeetCode 110

算法训练day17 LeetCode 110.257.404 110平衡二叉树 题目 110. 平衡二叉树 - 力扣(LeetCode) 题解 代码随想录 (programmercarl.com) 当子树已经不平衡,直接返回-1.平衡则返回子数高度进行更高树间的高度比较 class Solution ......
算法 LeetCode day 110 17

算法训练day16 LeetCod 104

算法训练day16 LeetCod 104.111.222 104.二叉树的最大深度 题目 104. 二叉树的最大深度 - 力扣(LeetCode) 题解 代码随想录 (programmercarl.com) 递归采用后序的遍历顺序,在根节点处做高度数据的处理 class Solution { pu ......
算法 LeetCod day 104 16

[AGC030D] Inversion Sum

Problem StatementYou are given an integer sequence of length $N$: $A_1,A_2,...,A_N$. Let us perform $Q$ operations in order. The $i$-th operation is d ......
Inversion 030D AGC 030 Sum

LeetCode3题学透链表初始化、查找、插入删除、逆置操作

1.题目要求 LeetCode203移除链表指定元素 LeetCode707设计链表 LeetCode206反转链表 这三个题目包含了链表的初始化、插入头尾结点、插入删除第n个结点,删除指定内容的结点、链表的逆置等,下面我将一一讲解并展示源代码。 2.具体操作 2.1LeetCode中链表的初始化 ......
LeetCode3 LeetCode

[leetcode] 10. 正则表达式匹配

10. 正则表达式匹配 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 示例 1: 输入:s = "aa", p = "a ......
正则 表达式 leetcode 10

【LeetCode】收集树中金币

链接 题目 给你一个 n 个节点的无向无根树,节点编号从 0 到 n - 1 。给你整数 n 和一个长度为 n - 1 的二维整数数组 edges ,其中 edges[i] = [ai, bi] 表示树中节点 ai 和 bi 之间有一条边。再给你一个长度为 n 的数组 coins ,其中 coins ......
金币 LeetCode

算法训练day15 层序遍历、LeetCode 226

算法训练day15 层序遍历、LeetCode 226.101 层序遍历 层序遍历是一种广度优先的遍历方式 队列符合广度优先层层深入的逻辑,栈符合深度优先(递归)的逻辑 //逐层完整遍历 class Solution { public: vector<vector<int>> levelOrder( ......
算法 LeetCode day 226 15

Leetcode刷题448.找到所有数组中消失的数字

给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。 示例 1: 输入:nums = [4,3,2,7,8,2,3,1] 输出:[5,6] 示例 2: 输入:nums ......
数组 Leetcode 数字 448

Leetcode刷题283.移动零

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

LeetCode53.最大子数组和

要求最大连续子数组的和,可以这样考虑,比如现在我想求下标 i~j,i<j 这一范围内子数组的和,那么我可以分别先求出 0~i-1 范围和 0~j 范围两个子数组的和,可得Sum[i~j]=Sum[0~j]-Sum[0~i-1] ,这就是本题解法的核心思想。 解法详细描述:先从下标0开始,遍历 num ......
数组 LeetCode 53

leetcode 22 括号生成

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"] 示例 2: 输入:n = 1 输出:["()"] 提示: 1 <= n < ......
括号 leetcode 22