
leecode
Lau Patrick
Hunan University
Any ideologies wont end up.
展开
-
[java]极大极小游戏
java ArrayList基本使用方法,Array转为ArrayList原创 2022-06-10 10:12:19 · 297 阅读 · 0 评论 -
【java Tutorial】HashMap初探——重排字符形成目标字符串
leecode、java的hashmap用法原创 2022-06-04 19:16:42 · 342 阅读 · 0 评论 -
【python3】统计值等于子树平均值的节点数
题目描述给你一棵二叉树的根节点 root ,找出并返回满足要求的节点数,要求节点的值等于其 子树 中值的 平均值 。注意:n 个元素的平均值可以由 n 个元素 求和 然后再除以 n ,并 向下舍入 到最近的整数。root 的 子树 由 root 和它的所有后代组成。Coding# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right..原创 2022-05-28 09:52:13 · 260 阅读 · 0 评论 -
[python3] 字符串中最大的 3 位相同数字
题目描述给你一个字符串 num ,表示一个大整数。如果一个整数满足下述所有条件,则认为该整数是一个 优质整数 :该整数是 num 的一个长度为 3 的 子字符串 。该整数由唯一一个数字重复 3 次组成。以字符串形式返回 最大的优质整数 。如果不存在满足要求的整数,则返回一个空字符串 "" 。注意:子字符串 是字符串中的一个连续字符序列。num 或优质整数中可能存在 前导零 。Coding1from collections import defaultdictclass So原创 2022-05-27 11:43:06 · 233 阅读 · 0 评论 -
[单调栈+前缀和的前缀和] 巫师的总力量和
题目描述作为国王的统治者,你有一支巫师军队听你指挥。给你一个下标从 0 开始的整数数组 strength ,其中 strength[i] 表示第 i 位巫师的力量值。对于连续的一组巫师(也就是这些巫师的力量值是 strength 的 子数组),总力量 定义为以下两个值的 乘积 :巫师中 最弱的能力值。组中所有巫师的个人力量值 之和。请你返回 所有巫师组的 总力量之和。由于答案可能很大,请将答案对109 + 7取余后返回。子数组 是一个数组里 非空 连续子序列。代码...原创 2022-05-24 15:04:04 · 261 阅读 · 0 评论 -
【多个区间合并问题】统计区间中的整数数目
问题描述给你区间的 空 集,请你设计并实现满足要求的数据结构:新增:添加一个区间到这个区间集合中。统计:计算出现在 至少一个 区间中的整数个数。实现 CountIntervals 类:CountIntervals() 使用区间的空集初始化对象void add(int left, int right) 添加区间 [left, right] 到区间集合之中。int count() 返回出现在 至少一个 区间中的整数个数。注意:区间 [left, right] 表示满足 left <=原创 2022-05-22 14:14:47 · 222 阅读 · 0 评论 -
[累加和+二分]摘水果
题目描述在一个无限的 x 坐标轴上,有许多水果分布在其中某些位置。给你一个二维整数数组 fruits ,其中 fruits[i] = [positioni, amounti] 表示共有 amounti 个水果放置在 positioni 上。fruits 已经按 positioni 升序排列 ,每个 positioni 互不相同 。另给你两个整数 startPos 和 k 。最初,你位于 startPos 。从任何位置,你可以选择 向左或者向右 走。在 x 轴上每移动 一个单位 ,就记作 一步 。你总原创 2022-05-08 15:11:12 · 322 阅读 · 0 评论 -
[非重复型打乱匹配问题+状压]Count Words Obtained After Adding a Letter
DescriptionYou are given two 0-indexed arrays of strings startWords and targetWords. Each string consists of lowercase English letters only.For each string in targetWords, check if it is possible to choose a string from startWords and perform a convers原创 2022-01-26 19:46:03 · 387 阅读 · 0 评论 -
[欧拉路]合法重新排列数对
题目描述给你一个下标从 0 开始的二维整数数组 pairs ,其中 pairs[i] = [starti, endi] 。如果 pairs 的一个重新排列,满足对每一个下标 i ( 1 <= i < pairs.length )都有 endi-1 == starti ,那么我们就认为这个重新排列是 pairs 的一个 合法重新排列 。请你返回 任意一个 pairs 的合法重新排列。注意:数据保证至少存在一个 pairs 的合法重新排列。思路分析入度为2时,从出度为1的结点开始原创 2022-01-11 14:31:35 · 379 阅读 · 0 评论 -
[拓扑排序+基环内向树+动态规划]参加会议的最多员工数
题目描述一个公司准备组织一场会议,邀请名单上有 n 位员工。公司准备了一张 圆形 的桌子,可以坐下 任意数目 的员工。员工编号为 0 到 n - 1 。每位员工都有一位 喜欢 的员工,每位员工 当且仅当 他被安排在喜欢员工的旁边,他才会参加会议。每位员工喜欢的员工 不会 是他自己。给你一个下标从 0 开始的整数数组 favorite ,其中 favorite[i] 表示第 i 位员工喜欢的员工。请你返回参加会议的 最多员工数目 。思路分析 拓扑排序里利用没有入队的元素——剩余的元素一定原创 2022-01-06 15:48:36 · 517 阅读 · 0 评论 -
[双指针]还原原数组
题目描述Alice 有一个下标从 0 开始的数组 arr ,由 n 个正整数组成。她会选择一个任意的 正整数 k 并按下述方式创建两个下标从 0 开始的新整数数组 lower 和 higher :对每个满足 0 <= i < n 的下标 i ,lower[i] = arr[i] - k对每个满足 0 <= i < n 的下标 i ,higher[i] = arr[i] + k不幸地是,Alice 丢失了全部三个数组。但是,她记住了在数组 lower 和 higher 中原创 2021-12-30 16:46:38 · 1175 阅读 · 0 评论 -
相同元素的间隔之和
Tag前缀和、Math题目描述给你一个下标从 0 开始、由 n 个整数组成的数组 arr 。arr 中两个元素的 间隔 定义为它们下标之间的 绝对差 。更正式地,arr[i] 和 arr[j] 之间的间隔是 |i - j| 。返回一个长度为 n 的数组 intervals ,其中 intervals[i] 是 arr[i] 和 arr 中每个相同元素(与 arr[i] 的值相同)的 间隔之和 。注意:|x| 是 x 的绝对值。思路分析首先要自己抽象数学公式 对绝对值求和原创 2021-12-30 11:39:42 · 564 阅读 · 0 评论 -
非连续递增子区间元素个数——使数组 K 递增的最少操作次数
题目描述给你一个下标从 0开始包含 n个正整数的数组arr,和一个正整数k。如果对于每个满足k <= i <= n-1的下标i,都有arr[i-k] <= arr[i],那么我们称arr是 K递增 的。比方说,arr = [4, 1, 5, 2, 6, 2]对于k = 2是 K 递增的,因为:arr[0] <= arr[2] (4 <= 5)arr[1] <= arr[3] (1 <= 2)arr[2] <...原创 2021-12-28 16:09:20 · 533 阅读 · 0 评论 -
使所有区间的异或结果为零
题目描述给你一个整数数组 nums 和一个整数 k 。区间 [left, right](left <= right)的 异或结果 是对下标位于left 和 right(包括 left 和 right )之间所有元素进行 XOR 运算的结果:nums[left] XOR nums[left+1] XOR ... XOR nums[right] 。返回数组中 要更改的最小元素数 ,以使所有长度为 k 的区间异或结果等于零。思路分析分组背包:按照区间长度为k的求模来分为k个.原创 2021-12-22 19:26:01 · 401 阅读 · 0 评论 -
[前缀和+二分] 2106.摘苹果
题目在一个无限的 x 坐标轴上,有许多水果分布在其中某些位置。给你一个二维整数数组 fruits ,其中 fruits[i] = [positioni, amounti] 表示共有 amounti 个水果放置在 positioni 上。fruits 已经按 positioni 升序排列 ,每个 positioni 互不相同 。另给你两个整数 startPos 和 k 。最初,你位于 startPos 。从任何位置,你可以选择 向左或者向右 走。在 x 轴上每移动 一个单位 ,就记作 一步 。你总共可原创 2021-12-22 11:00:33 · 271 阅读 · 0 评论 -
从二叉树一个节点到另一个节点每一步的方向
题目描述给你一棵 二叉树的根节点root,这棵二叉树总共有n个节点。每个节点的值为1到n中的一个整数,且互不相同。给你一个整数startValue,表示起点节点 s的值,和另一个不同的整数destValue,表示终点节点t的值。请找到从节点s到节点 t的 最短路径,并以字符串的形式返回每一步的方向。每一步用 大写字母'L','R'和'U'分别表示一种方向:'L'表示从一个节点前往它的 左孩子节点。'R'表示从一个节点前往它的 右孩子节...原创 2021-12-08 13:52:13 · 606 阅读 · 0 评论 -
找出知晓秘密的所有专家
待优化,一直超时。。。题目描述给你一个整数 n ,表示有 n 个专家从 0 到 n - 1 编号。另外给你一个下标从 0 开始的二维整数数组 meetings ,其中 meetings[i] = [xi, yi, timei] 表示专家 xi 和专家 yi 在时间 timei 要开一场会。一个专家可以同时参加 多场会议 。最后,给你一个整数 firstPerson 。专家 0 有一个 秘密 ,最初,他在时间0 将这个秘密分享给了专家 firstPerson 。接着,这个秘密会在每次有知晓这个秘.原创 2021-12-01 14:11:41 · 380 阅读 · 0 评论 -
所有子字符串中的元音
题目描述给你一个字符串 word ,返回 word 的所有子字符串中 元音的总数 ,元音是指 'a'、'e'、'i'、'o' 和 'u' 。子字符串 是字符串中一个连续(非空)的字符序列。注意:由于对 word 长度的限制比较宽松,答案可能超过有符号 32 位整数的范围。计算时需当心。思路分析带有前缀和的思想,记录以每个当前字符为结尾的所有子字符串的元音个数(累加的),即prevValidCharNum + i + 1 又有dp的思想Source codeclass So.原创 2021-11-19 14:47:45 · 265 阅读 · 0 评论 -
统计异或值在范围内的数对有多少
字典树模板题原创 2021-11-19 10:59:15 · 402 阅读 · 0 评论 -
最大化一张图中的路径价值
题目描述给你一张 无向图,图中有 n个节点,节点编号从 0到 n - 1(都包括)。同时给你一个下标从 0开始的整数数组values,其中values[i]是第 i个节点的 价值。同时给你一个下标从 0开始的二维整数数组edges,其中edges[j] = [uj, vj, timej]表示节点uj 和vj之间有一条需要timej秒才能通过的无向边。最后,给你一个整数maxTime。合法路径指的是图中任意一条从节点0开始,最终回到节点 0,且花费...原创 2021-11-15 14:17:30 · 915 阅读 · 0 评论 -
反转链表-leecode267场周赛
题目描述给你一个链表的头节点 head 。链表中的节点 按顺序 划分成若干 非空 组,这些非空组的长度构成一个自然数序列(1, 2, 3, 4, ...)。一个组的 长度 就是组中分配到的节点数目。换句话说:节点 1 分配给第一组节点 2 和 3 分配给第二组节点 4、5 和 6 分配给第三组,以此类推注意,最后一组的长度可能小于或者等于 1 + 倒数第二组的长度 。反转 每个 偶数 长度组中的节点,并返回修改后链表的头节点 head 。思路分析太cai了,好久没做过链表的题目原创 2021-11-15 10:54:54 · 91 阅读 · 0 评论 -
车队 II
题目描述在一条单车道上有 n辆车,它们朝着同样的方向行驶。给你一个长度为 n的数组 cars,其中cars[i] = [position i, speed i],它表示:position i是第 i辆车和道路起点之间的距离(单位:米)。题目保证position i < position i+1。speed i是第 i辆车的初始速度(单位:米/秒)。简单起见,所有车子可以视为在数轴上移动的点。当两辆车占据同一个位置时,我们称它们相遇了。一旦两辆车相遇,它们会合并成一个车...原创 2021-11-05 16:56:28 · 170 阅读 · 0 评论 -
快速幂算法
题目描述给你一个正整数primeFactors。你需要构造一个正整数n,它满足以下条件:n质因数(质因数需要考虑重复的情况)的数目 不超过primeFactors个。n好因子的数目最大化。如果 n的一个因子可以被 n的每一个质因数整除,我们称这个因子是 好因子 。比方说,如果n = 12,那么它的质因数为[2,2,3],那么6和12是好因子,但3 和4不是。请你返回n的好因子的数目。由于答案可能会很大,请返回答案对10^9 + 7取余的结果。...原创 2021-11-03 15:45:39 · 170 阅读 · 0 评论 -
review-最接近目标价格的甜点成本
题目描述你打算做甜点,现在需要购买配料。目前共有 n 种冰激凌基料和 m 种配料可供选购。而制作甜点需要遵循以下几条规则:必须选择 一种 冰激凌基料。可以添加 一种或多种 配料,也可以不添加任何配料。每种类型的配料 最多两份 。给你以下三个输入:baseCosts ,一个长度为 n 的整数数组,其中每个 baseCosts[i] 表示第 i 种冰激凌基料的价格。toppingCosts,一个长度为 m 的整数数组,其中每个 toppingCosts[i] 表示 一份 第 i 种冰激凌配料原创 2021-11-02 12:54:53 · 234 阅读 · 0 评论 -
一遍扫过的string
类型: 字符串匹配+替换开始的思路: 用replace多次扫过,卡在最后5个测试用例最终思路:利用堆栈、队列的思路:设置标志位即可class Solution {public: map<string,string> mp; string evaluate(string s, vector<vector<string>>& knowledge) { for(auto t:knowledge) mp[t[0]]=原创 2021-10-27 12:42:45 · 113 阅读 · 0 评论 -
网络空闲的时刻
第一次一次过的题目。。感动题目描述给你一个有 n个服务器的计算机网络,服务器编号为0到n - 1。同时给你一个二维整数数组edges,其中edges[i] = [ui, vi]表示服务器ui 和vi之间有一条信息线路,在一秒内它们之间可以传输任意数目的信息。再给你一个长度为 n且下标从0开始的整数数组patience。题目保证所有服务器都是 相通的,也就是说一个信息从任意服务器出发,都可以通过这些信息线路直接或间接地到达任何其他服务器。编...原创 2021-10-20 16:47:38 · 154 阅读 · 0 评论 -
绝对差值和 —— 二分
题目描述给你两个正整数数组 nums1 和 nums2 ,数组的长度都是 n 。数组 nums1 和 nums2 的 绝对差值和 定义为所有 |nums1[i] - nums2[i]|(0 <= i < n)的 总和(下标从 0 开始)。你可以选用 nums1 中的 任意一个 元素来替换 nums1 中的 至多 一个元素,以 最小化 绝对差值和。在替换数组 nums1 中最多一个元素 之后 ,返回最小绝对差值和。因为答案可能很大,所以需要对 10^9 + 7 取余 后返回。基原创 2021-10-18 16:36:07 · 218 阅读 · 0 评论 -
袋子里最少数目的球/ 分配给商店的最多商品的最小值
问题描述给你一个整数数组nums,其中nums[i]表示第i个袋子里球的数目。同时给你一个整数maxOperations。你可以进行如下操作至多maxOperations次:选择任意一个袋子,并将袋子里的球分到2 个新的袋子中,每个袋子里都有 正整数个球。比方说,一个袋子里有5个球,你可以把它们分到两个新袋子里,分别有 1个和 4个球,或者分别有 2个和 3个球。你的开销是单个袋子里球数目的 最大值,你想要 最小化开销。请你返回进行上述操作后的最...原创 2021-10-08 14:18:22 · 146 阅读 · 0 评论 -
逆向思维优化“序列中不同最大公约数的数目“
题目描述如下给你一个由正整数组成的数组 nums 。数字序列的 最大公约数 定义为序列中所有整数的共有约数中的最大整数。例如,序列 [4,6,16] 的最大公约数是 2 。数组的一个 子序列 本质是一个序列,可以通过删除数组中的某些元素(或者不删除)得到。例如,[2,5,10] 是 [1,2,1,2,4,1,5,10] 的一个子序列。计算并返回 nums 的所有 非空 子序列中 不同 最大公约数的 数目 。采用树形dp思想的写法如下但是是超时的,从数据规模来看,要达到O(nlog原创 2021-09-30 15:25:26 · 257 阅读 · 0 评论 -
“最少侧跳次数“retry - insert ‘dp‘ thought
题目描述给你一个长度为n的3 跑道道路,它总共包含n + 1个点,编号为0到n。一只青蛙从0号点第二条跑道出发,它想要跳到点n处。然而道路上可能有一些障碍。给你一个长度为 n + 1的数组obstacles,其中obstacles[i](取值范围从 0 到 3)表示在点 i处的obstacles[i]跑道上有一个障碍。如果obstacles[i] == 0,那么点i处没有障碍。任何一个点的三条跑道中最多有一个障碍。比方说,如果ob...原创 2021-09-27 10:42:14 · 135 阅读 · 0 评论 -
【更新】自底向上包含自顶向下
题目描述有一棵根节点为 0的 家族树,总共包含 n个节点,节点编号为 0到 n - 1。给你一个下标从 0开始的整数数组 parents,其中parents[i]是节点 i的父节点。由于节点 0是 根,所以parents[0] == -1。总共有105个基因值,每个基因值都用 闭区间[1, 105]中的一个整数表示。给你一个下标从0开始的整数数组nums,其中nums[i]是节点 i的基因值,且基因值 互不相同。请你返回一个数组ans,长度...原创 2021-09-24 12:55:51 · 154 阅读 · 0 评论 -
对“积压订单中的订单总数“算法的优化
二话不说,看下优化后的效果如下:时间从356ms缩减为188ms,内存消耗也有减少 可以看出map<int,int> mp所涉及的删除操作是没有优先队列的时间复杂度优秀的题目描述如下:给你一个二维整数数组 orders ,其中每个 orders[i] = [pricei, amounti, orderTypei] 表示有 amounti 笔类型为orderTypei 、价格为pricei 的订单。订单类型 orderTypei 可以分为两种:0 表示这是一批采...原创 2021-09-20 17:12:04 · 181 阅读 · 0 评论 -
重新审视“由子序列构造的最长回文串的长度“
题目如下给你两个字符串 word1 和 word2 ,请你按下述方法构造一个字符串:从 word1 中选出某个 非空 子序列 subsequence1 。从 word2 中选出某个 非空 子序列 subsequence2 。连接两个子序列 subsequence1 + subsequence2 ,得到字符串。返回可按上述方法构造的最长 回文串 的 长度 。如果无法构造回文串,返回 0 。代码如下注意此题与连续字串不同,是一个"子集" 直接避免了"排列数"方式的枚举过程,注意到这.原创 2021-09-16 19:01:31 · 95 阅读 · 0 评论 -
从第一个节点出发到最后一个节点的受限路径数
回顾很久之前做的题目,机考说不定真考图论了呢,关键是shortest path后的单向梯度下降算法,注意这里是与结点n之间的距离,不是0step[i]+=path(t.v,j); 这个包含了动态规划的思想,从源节点的所有路径数,归结为找寻子源节点到n的总路径数 注意题目对路径数的规模限制:返回对10^9+7取余的结果long long INF=pow(10,10);int N=4*pow(10,4); //最大的结点数//The line is special for the ...原创 2021-09-13 15:32:28 · 259 阅读 · 0 评论 -
Leecode 第237场周赛 - 单线程 CPU
还是超时问题感觉书写的思路相当清晰,不知道是不是因为stl特别容易超时的问题 class Solution {public: map<int,multiset<pair<int,int>>> mp; vector<int> getOrder(vector<vector<int>>& tasks) { vector<int> order; int num原创 2021-04-26 12:32:15 · 194 阅读 · 0 评论 -
Leecode 第238场周赛 - 所有元音按顺序排布的最长子字符串
题解链接如下https://leetcode-cn.com/problems/longest-substring-of-all-vowels-in-order/solution/zai-bian-li-guo-cheng-zhong-you-tui-hua-h1q0s/思路分析分别对'a'、'e'、'i'、'o'、'u'进行处理即可 class Solution {public: int longestBeautifulSubstring(string word) {原创 2021-04-26 09:20:30 · 228 阅读 · 0 评论 -
Leecode 第236场周赛 - 最少侧跳次数
最后十个测试用例一直通不过,据说是动态规划的问题,之后再好好改写????class Solution {public: int minSideJumps(vector<int>& obstacles) { vector <int> v; int num=0; v.push_back(obstacles[0]); for(int i=1;i<obstacles.size();i++)原创 2021-04-25 15:42:13 · 176 阅读 · 0 评论