优选算法题目
文章平均质量分 62
阿猿刷题之旅。
阿猿收手吧!
C++领域新星创作者 博客之星2023入围者 数据结构与算法领域内容榜第38名 总访问量二十万
展开
-
【算法-动态规划】买卖股票的最佳时机
动态规划之买卖股票的最佳时机原创 2024-10-23 14:20:11 · 332 阅读 · 0 评论 -
【算法-动态规划】打家劫舍专题
动态规划之打家劫舍原创 2024-10-16 09:09:30 · 487 阅读 · 0 评论 -
【算法】约瑟夫环
100//递推公式这里不写【(get(n - 1, m) + m) % n 】的原因是编号从1开始 自己演算可得// 1-n编号 1-m报数 m出圈 最后出圈者编号int main()//s取1return 0;// 0-n-1编号 0-m-1报数 m-1出圈 最后出圈者编号// i个孩子围成一圈 最后出圈者public:public:int dp = 0;i原创 2024-04-20 13:06:38 · 386 阅读 · 0 评论 -
【滑动窗口】串联所有单词的子串
前续的铺垫后续的高潮。原创 2024-04-07 21:59:55 · 434 阅读 · 0 评论 -
【leetcode】将x减到0的最小操作数/水果成篮/找到字符串中所有字母异位词{史上最容易懂的解析}
效率尽可能高的代码 ➕ 史上最容易理解的解析原创 2024-04-03 23:52:43 · 706 阅读 · 2 评论 -
最大连续1的个数 Ⅲ【滑动窗口】
共识:【滑动区间的长度即连续1的个数】。这道题其实很有趣,写题就不要怕题,混社会就不要怕事。看这道题:其实就是个滑动窗口,只要0的个数不超k,0就能当1用,一旦0的个数超k,那么要求的长度已达到,此时我们要:1. 让该区间的最左值出窗口。2. 如果该区间的最左值还为0,那么他出窗口的同时,记录的0的个数还要–;原创 2024-04-01 20:16:06 · 1231 阅读 · 0 评论 -
无重复字符的最长子串【哈希/滑动窗口】
2. 原来子串中出现了重复字符,不知道与right重复的字符在哪里,例如:abcdd,a做起始位置的【长度】为4,a出窗口,b作为起始位置,仍有重复字符,b直接出窗口==》b在a后面,b到right的长度肯定小于a到right,顾只要没有去除重复字符,就一直往后移动就行了,不用更新b做起始位置的长度。【暴力求解】中提到,遍历数组,把每一个元素作为【结果区间】的首元素,依次顺序添加直到满足条件,记录将该元素作为【结果区间】首元素下【结果区间】的长度,遍历结束后,在取这些值的最小值即为结果。原创 2024-04-01 19:36:56 · 989 阅读 · 0 评论 -
⻓度最⼩的⼦数组【滑动窗口】
现在我们细思【暴力求解】的过程,当把arr[0]作为【结果区间】的首元素时,我们计算求和了一部分值,当下一轮把arr[1]作为【结果区间】的首元素时,我们又重新计算了在第一轮中计算过的值,这就是【暴力求解】效率低下的原因。【暴力求解】中提到,遍历数组,把每一个元素作为【结果区间】的首元素,依次顺序添加直到满足条件,记录将该元素作为【结果区间】首元素下【结果区间】的长度,遍历结束后,在取这些值的最小值即为结果。这道题要求的是一个区间 是区间就有【第一个元素】 即起始位置。如此大大的减少了计算的次数。原创 2024-03-30 19:31:09 · 428 阅读 · 0 评论 -
四数之和【双指针】
【代码】四数之和【双指针】原创 2024-03-29 09:48:09 · 269 阅读 · 0 评论 -
三数之和【双指针】
【代码】三数之和【双指针】原创 2024-03-28 23:26:25 · 227 阅读 · 0 评论 -
查找总价格为目标值的两个商品【双指针】
这道题实际上跟本专栏上一题属于同一类型,是上一题的简单版,可以点击跳跃。对撞指针:思路和上篇一致。原创 2024-03-28 21:14:06 · 215 阅读 · 0 评论 -
有效三角形的个数【双指针】
如果能构成三⻆形,需要满⾜任意两边之和要⼤于第三边。实际上只需让即可。将原数组排序,从⼩到⼤枚举三元组,这样三层 for 循环枚举出的三元组只需判断较⼩的两条边之和是否⼤于第三边。原创 2024-03-27 20:39:05 · 358 阅读 · 0 评论 -
盛⽔最多的容器【双指针】
向内移动短板(假设该短板的下标为x,此时右边界的下标为y),实际上是舍去了将x作为左边界到y-1的集合,即暴力求解是n边取2边的所有取值的集合,这个解法是每一步舍去不会作为较大值的集合。【x, x+1】这些集合中所有取值的底边都比已经作为较大值的【x, y】的底边小,所有的高度都比已经作为较大值的【x, y】的高度小或者等于。只要移动一边,底肯定变小,如果还是移动高的一边,不仅底小了,高也小了,如果移动地的一边,虽然底小了,但是高大了,即若向内移动短板,下个水槽的面积可能增大。我是搜了资料了解的。原创 2024-03-26 21:50:09 · 314 阅读 · 0 评论 -
快乐数【双指针】
当走完一个循环周期,判断是不是因为 1 引起的循环,是的话就是快乐数,否则不是快乐数。不是快乐数的:无论经过多少次都不会到1,即他陷入了重复数据段的死循环,如上例中的2。“慢指针” 每次走一步,当二者相等时,即为一个循环周期。是快乐数的:经过x次平方替换后会陷入1的死循环。出现了重复的数字,最后结果肯定不会是 1。原创 2024-03-25 19:44:54 · 159 阅读 · 0 评论 -
复写0【双指针】
【代码】复写0【双指针】原创 2024-03-24 23:40:50 · 346 阅读 · 0 评论 -
移动0【双指针】
cur每次走一步,dest走不走取决于cur有没有找到非0值,一旦找打非0值,交换。不是非0值,dest不动。==》【非零,dest】【dest,0】原创 2024-03-24 22:29:29 · 207 阅读 · 0 评论