leetcode
文章平均质量分 68
采用代码随想录的刷题路线
yz_YYYZZZ
这个作者很懒,什么都没留下…
展开
-
滑动窗口系列题
参考:https://leetcode.cn/problems/find-all-anagrams-in-a-string/solutions/9749/hua-dong-chuang-kou-tong-yong-si-xiang-jie-jue-zi-/也叫做「虫取法」,非常生动形象。因为。以右指针作为驱动,拖着左指针向前走。右指针每次只移动一步,而左指针在内部 while 循环中每次可能移动多步。右指针是主动前移,探索未知的新区域;左指针是被迫移动,负责寻找满足题意的区间。原创 2023-02-26 16:01:52 · 537 阅读 · 1 评论 -
【代码随想录】-单调栈专题
【代码】【代码随想录】-单调栈专题。原创 2023-02-14 20:04:25 · 202 阅读 · 0 评论 -
【代码随想录】-动态规划专题
*** leetcode-1049. 最后一块石头的重量 II* @return// 问题可以转化为 把一堆石头分成两堆,求两堆石头重量差最小值 // 若要差值最小 则两堆石头的重量要尽量接近所有石头总和的一半 //dp[target]里是容量为target的背包所能背的最大重量。//一堆石头的总重量是dp[target],另一堆就是sum - dp[target] int sum = 0;原创 2023-02-12 14:42:58 · 1320 阅读 · 0 评论 -
【代码随想录】-贪心专题
有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿?每次拿最大就是局部最优。做题的时候,只要想清楚 局部最优 是什么,如果推导出全局最优,其实就够了。上述过于理论化,在实际做题中,很难按照上面四部去逐步思考。原创 2023-01-18 15:47:12 · 1212 阅读 · 0 评论 -
【代码随想录】-回溯专题
而满足回溯条件的某个状态的点称为“回溯点”。许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。回溯算法其实就是一个不断探索尝试的过程,探索成功了也就成功了,探索失败了就在退一步,继续尝试……回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。递归就要有终止条件,所以必然是一棵高度有限的树(N叉树)。的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,,因为回溯法解决的都是在集合中递归查找子集,回溯算法实际上一个类似。原创 2023-01-06 22:37:00 · 1267 阅读 · 0 评论 -
【代码随想录】-二叉树专题
二叉树是天然的递归结构!求深度选用前序遍历,求高度选用后序遍历。深度从上至下1 2 3 高度从下至上1 2 3。原创 2022-12-24 21:19:10 · 186 阅读 · 0 评论 -
【代码随想录】-栈和队列专栏(Java)
栈:先进后出队列:先进先出Java中涉及到栈的使用时推荐使用Deque。原创 2022-11-27 11:36:51 · 254 阅读 · 0 评论 -
【代码随想录】-字符串专栏(Java)
方法1:不申请额外空间,在自身操作。原创 2022-11-21 21:03:43 · 127 阅读 · 0 评论 -
kmp算法记录
以字符串“happy”为例前缀:h,ha,hap,happ 不包括最后一个字符后缀:appy,ppy,py,y 不包括第一个字符部分匹配表(Partial Match Table),简称PMT,将其中的值定义为前缀与后缀的集合交集中最长的元素长度:前缀:a,ab后缀:ba,a两者交集的最大长度是a字符,长度为1,则对应的PMT值为1对于字符串"abababca",PMT表为:前缀:a,ab,aba后缀:bab,ab,b交集最大长度为ab字符,长度为2,则对应的PMT值为2。原创 2022-11-20 16:26:53 · 264 阅读 · 0 评论 -
数据结构和算法(Java),下
整个文章主要来源于尚硅谷韩顺平数据结构与算法以及加上我查阅资料后加上自己的理解编写而成,若发现有错误的地方,欢迎指正!全文字数较多,采用typora编辑而成。此处为下部分,上部分第9章 树结构的基础部分二叉树为什么需要树这种数据结构数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低[示意图]链式存储方式的分析优点:在一定程度上对数组存储方式有优化.原创 2021-02-10 20:41:10 · 518 阅读 · 2 评论 -
数据结构和算法(Java),上
文章目录第1章 数据结构和算法的概述数据结构和算法的关系线性结构和非线性结构线性结构非线性结构第2章 稀疏数组和队列稀疏数组案例引入稀疏数组的基本介绍应用实例队列队列介绍数组模拟队列数组模拟环形队列第3章 链表链表(LinkedList)介绍单链表的应用实例单链表的面试题双向链表应用实例双向链表的相关操作分析和实现单向环形链表应用场景单向环形链表介绍Joseph问题第4章 栈栈的一个实际需求栈的介绍栈的应用场景栈的快速入门数组模拟栈链表模拟栈栈实现综合计算器(中缀表达式)前缀、中缀、后缀表达式使用栈来实现综原创 2021-02-10 19:54:13 · 540 阅读 · 2 评论 -
【代码随想录】哈希表专栏(Java)
哈希表是根据关键码的值而直接进行访问的数据结构。也称为散列表数组就是一个哈希表。需要快速判断一个元素是否出现在集合里面时,需要考虑使用哈希法。原创 2022-11-16 14:58:43 · 207 阅读 · 0 评论 -
【代码随想录】链表专栏(Java)
链表长度不固定,增删快,查询慢。原创 2022-11-11 14:50:51 · 346 阅读 · 0 评论 -
【代码随想录】数组专栏(Java)
由于是非递减的顺序,可以考虑二分法。在第一次找到target时,向左右探测。在左边和右边分别执行二分法找到target后返回下标。//左边 arr [ 1 ] = search2(nums , target , 1);//右边 return arr;//探测左边 right = middle - 1;} else {//探测右边 left = middle + 1;} else {}原创 2022-11-04 14:32:50 · 580 阅读 · 0 评论