![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode算法实战
文章平均质量分 62
lin钟一
The Best is Yet to Come
展开
-
Leetcode-每日一题1250. 检查「好数组」(裴蜀定理)
如何求数组 nums 的 最大公约数 g,初始化 g = nums[0],遍历数组,更新 g = gcd(g, nums[i]),遍历完全部数字后,g 即为数组 nums 中全部的元素的最大公约数。题目意思很简单,让你在数组 nums中选取一些子集,可以不连续,子集中的每个数再乘以任意的数的和是否为1,是则原数组就是个「好数组」「裴(pei)蜀定理」:设 a,b 是不全为零的整数,则存在整数 x,y, 使得 ax+by= gcd(a,b).,记这 n 个整数的最大公约数为 0,则对于任意 n 个整数 x。原创 2023-02-15 11:21:11 · 583 阅读 · 0 评论 -
Leetcode-每日一题1234. 替换子串得到平衡字符串(滑动窗口 + 哈希表)
滑动窗口的时间复杂度是线性的,时间复杂度一般为O(n),滑动窗口的左右边界都不会向左滑动,向左滑动等于走回头路,是一种回溯的算法,很可能会陷入死循环。滑动窗口:滑动窗口是双指针的一种特例,可以称为左右指针,在任意时刻,只有一个指针运动,而另一个保持静止。, 需要你通过替换子串,使他变成一个「平衡字符串」,也就是字符串s内四个字符的数量都相等。首先要仔细审题,我刚开始是以为计算需要替换的字符的数量,秒wa,仔细阅读发现是。,需要找到一个最小长度的替换连续子串,第一反应就是滑动窗口或者双指针。原创 2023-02-13 11:08:59 · 746 阅读 · 0 评论 -
Leetcode-每日一题1604. 警告一小时内使用相同员工卡大于等于三次的人(哈希表 + 快排)
时间复杂度:O(nlogn),其中 n 是数组 keyName 和 keyTime 的长度。需要遍历数组 keyName 和 keyTime,得到每个员工的全部使用员工卡的时间,遍历的时间复杂度是 O(n),存入哈希表的时间复杂度是 O(1),因此时间复杂度是 O(n)。然后判断每个员工是否收到系统警告,需要进行排序和遍历的操作,最坏情况下,排序的时间复杂度是 O(nlogn),遍历的时间复杂度是 O(n),因此时间复杂度是 O(nlogn)。,则会收到系统警告,我们需要把系统警告到员工数组。原创 2023-02-07 13:13:02 · 264 阅读 · 0 评论 -
Leetcode-每日一题1210. 穿过迷宫的最少移动次数(BFS)
碰到这种类型问题,需要看一下图的长度,这里在100以内,所以可以暴力用BFS或者DFS遍历答案,如果超过1000基本上是线性DP推导。可以把贪吃蛇的尾部看成一个点,要求从(0,0)到(n - 1, n - 1)的最短路径,但他并不是四个方向都能走,原创 2023-02-05 14:39:57 · 758 阅读 · 0 评论 -
Leetcode-每日一题792. 匹配子序列的单词数(分桶)
有个问题,我们怎么统计答案呢?很简单我们只需要去判断当前桶内的字符串长度已经等于 1 的时候,我们这个字符串就是字符串 s 的子序列。题目意思:给你一个字符串 s 和字符串数组 words, 可以对字符串 s 某些位置上的字符进行删除,并不改变原来的字符顺序产生的。通过上述操作,我们不断获得新的桶,直到字符串 s 遍历完,真正的子序列也会被筛选啊出来。,去对比字符串数组 words 存在多少相同的数量。原创 2022-11-17 10:40:59 · 945 阅读 · 2 评论 -
Leetcode-每日一题1106. 解析布尔表达式(DFS模拟栈)
【代码】Leetcode-每日一题1106. 解析布尔表达式(DFS模拟栈)原创 2022-11-05 10:55:22 · 309 阅读 · 0 评论 -
Leetcode-每日一题886. 可能的二分法(种类并查集)
但是,有时候,我们要维护另一种关系:敌人的敌人是朋友。题目的意思给我们n个点,将n个点分成两组,条件是两个不喜欢的点不能在一个组内,dislikes数组是告诉我们哪两个点直接存在不喜欢的关系。敌人的敌人就是朋友,2和4是敌人,2和1也是敌人,这里1和4通过2 + n这个元素间接连接在一起,这就是种类并查集的原理。,这里的n指的是4,对于1个编号为i的元素,i + n是它的敌人,这里图的意思也就是1是2的敌人,2是1的敌人。这里的1 ~ 4维护的是朋友关系,用5 ~ 8维护的是敌人关系(不喜欢的人)。原创 2022-10-16 10:29:21 · 615 阅读 · 2 评论 -
Leetcode-每日一题769. 最多能完成排序的块(贪心)
需要怎么分割序列才是个问题,题目其实给了提示因为序列里的数只能是[0, n-1]所以选择[l, r] 连续的序列中的数一定是 [l, r] 这段区间的数字,所以我们只需要遍历数组,去找这段区间内最大的数字,即边界值。例如:[1, 0, 2, 3, 4]可以分成[1,0]、[2]、[3]、[4]四段序列,排序完整合就是一个排序完的状态[0, 1, 2, 3, 4]的序列。这题的意思很简单,意思是需要分多少段连续的序列,使每段序列都排序,最后排序完整体大的序列也是排序完的状态。这个位置就表示下一段区间。原创 2022-10-13 13:54:20 · 79 阅读 · 0 评论 -
Leetcode-每日一题856. 括号的分数
这题的意思让你区分AB以及(A)的形式算出,计算出整个该字符串的分数。怎么区分呢,用分治的思想,我们需要先找到平衡的字符串,我们将左括号算做+1,右括号算做-1,通过遍历字符串算分数.原创 2022-10-09 13:52:24 · 342 阅读 · 1 评论 -
Leetcode-每日一题927. 三等分(双指针)
序列分成连续的三段序列,序列是由0、1组成,每段的0、1序列组成的二进制数都要相等。你只需要找到第一段序列与第二段序列的分割点。这题目要求我们分成三等分的且二进制数相等序列。, 第二段序列与第三段序列的分割点。题目需要你帮他把这个。原创 2022-10-06 11:22:59 · 521 阅读 · 2 评论 -
Leetcode-每日一题777. 在LR字符串中交换相邻字符
题目的意思是给你一个两个字符串你的R只能向右移动,L只能向左移动,并且只能旁边有X才能移动,能否将start字符串操作后变成end字符串。指向end的开头,跳过所有X字符,去进行判断。指向start的开头,指针。双指针的做法:一个指针。原创 2022-10-02 10:35:31 · 494 阅读 · 1 评论 -
leetcode-每日一题636. 函数的独占时间(模拟栈)
leetcode-每日一题636. 函数的独占时间(模拟栈)原创 2022-08-07 14:33:09 · 833 阅读 · 2 评论 -
leetcode-每日一题1408. 数组中的字符串匹配(暴力枚举)和Golang里关于Index方法和Contains方法区别
leetcode-每日一题1408. 数组中的字符串匹配(暴力枚举)和Golang里关于Index方法和Contains方法区别原创 2022-08-06 11:35:08 · 127 阅读 · 0 评论 -
leetcode-每日一题623. 在二叉树中增加一行(DFS)
leetcode-每日一题623. 在二叉树中增加一行(DFS)原创 2022-08-05 12:02:41 · 130 阅读 · 0 评论 -
leetcode-每日一题1403. 非递增顺序的最小子序列(贪心)
leetcode-每日一题1403. 非递增顺序的最小子序列(贪心)原创 2022-08-04 10:51:12 · 83 阅读 · 0 评论 -
leetcode-每日一题899. 有序队列(思维题)
题目链接:https://leetcode.cn/problems/orderly-queue/原创 2022-08-03 15:55:58 · 876 阅读 · 1 评论 -
leetcode-每日一题731. 我的日程安排表 II
leetcode-每日一题731. 我的日程安排表 II原创 2022-07-19 10:09:05 · 322 阅读 · 0 评论 -
leetcode-每日一题565. 数组嵌套(标记图和并查集)
leetcode-每日一题565. 数组嵌套(标记图和并查集)原创 2022-07-17 09:32:56 · 435 阅读 · 0 评论 -
leetcode-829. 连续整数求和(数论)
leetcode-829. 连续整数求和(数论)原创 2022-07-16 16:09:38 · 219 阅读 · 0 评论 -
leetcode-每日一题剑指 Offer II 041. 滑动窗口的平均值(队列模拟)
leetcode-每日一题剑指 Offer II 041. 滑动窗口的平均值(队列模拟)原创 2022-07-16 09:41:41 · 372 阅读 · 0 评论 -
leetcode-每日一题558. 四叉树交集(分治递归)
leetcode-每日一题558. 四叉树交集(分治递归)原创 2022-07-15 10:32:22 · 179 阅读 · 0 评论 -
leetcode-每日一题745. 前缀和后缀搜索(哈希和字典树)
leetcode-每日一题745. 前缀和后缀搜索(哈希和字典树)原创 2022-07-14 10:52:08 · 161 阅读 · 0 评论 -
leetcode-每日一题735. 行星碰撞(栈模拟)
leetcode-每日一题735. 行星碰撞(栈模拟)原创 2022-07-13 10:05:00 · 492 阅读 · 4 评论 -
leetcode-每日一题1252. 奇数值单元格的数目(模拟优化)
leetcode-每日一题1252. 奇数值单元格的数目(模拟优化)原创 2022-07-12 12:46:42 · 246 阅读 · 0 评论 -
leetcode-每日一题873. 最长的斐波那契子序列的长度(哈希和二分)
leetcode-每日一题873. 最长的斐波那契子序列的长度(哈希和二分)原创 2022-07-09 21:14:34 · 137 阅读 · 0 评论 -
leetcode-每日一题1217. 玩筹码(贪心+位运算)
leetcode-每日一题1217. 玩筹码(贪心+位运算)原创 2022-07-08 09:58:31 · 187 阅读 · 2 评论 -
leetcode-438. 找到字符串中所有字母异位词(滑动窗口)
leetcode-438. 找到字符串中所有字母异位词(滑动窗口)原创 2022-07-07 21:17:36 · 254 阅读 · 2 评论 -
leetcode-2321. 拼接数组的最大分数(差分+枚举)
leetcode-2321. 拼接数组的最大分数(差分+枚举)原创 2022-07-07 16:46:39 · 292 阅读 · 0 评论 -
leetcode-1833. 雪糕的最大数量(排序+贪心)
leetcode-1833. 雪糕的最大数量(排序+贪心)原创 2022-07-07 11:44:58 · 250 阅读 · 0 评论 -
leetcode-每日一题648. 单词替换(哈希)
leetcode-每日一题648. 单词替换(哈希)原创 2022-07-07 10:41:05 · 110 阅读 · 0 评论 -
leetcode-15. 三数之和(双指针)
leetcode-15. 三数之和(双指针)原创 2022-07-06 15:56:26 · 119 阅读 · 0 评论 -
leetcode-42. 接雨水
leetcode-42. 接雨水 类似题《面试题 17.21. 直方图的水量》原创 2022-07-06 13:38:14 · 114 阅读 · 2 评论 -
leetcode-76. 最小覆盖子串(滑动窗口)
leetcode-76. 最小覆盖子串(滑动窗口)原创 2022-07-06 11:02:54 · 77 阅读 · 0 评论 -
leetcode-4. 寻找两个正序数组的中位数
leetcode-4. 寻找两个正序数组的中位数原创 2022-07-05 22:04:58 · 95 阅读 · 0 评论 -
leetcode-每日一题729. 我的日程安排表 I
leetcode-每日一题729. 我的日程安排表 I原创 2022-07-05 21:15:02 · 204 阅读 · 0 评论 -
leetcode-32. 最长有效括号(堆栈+贪心)
leetcode算法实战原创 2022-07-04 22:15:30 · 182 阅读 · 0 评论 -
leetcode-剑指 Offer II 029. 排序的循环链表
leetcode算法实战原创 2022-07-04 21:42:06 · 128 阅读 · 0 评论 -
leetcode-10. 正则表达式匹配(DFS)
leetcode算法实战原创 2022-07-04 20:11:16 · 148 阅读 · 0 评论 -
leetcode-8. 字符串转换整数 (atoi)
leetcode算法实战原创 2022-07-04 19:38:01 · 78 阅读 · 0 评论 -
leetcode-每日一题1200. 最小绝对差
leetcode刷题实战原创 2022-07-04 18:54:17 · 156 阅读 · 0 评论