![](https://img-blog.csdnimg.cn/direct/c0b9bf49199e4a61839eae0c4bde9076.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
leetcode
文章平均质量分 53
刷题记录
“初生”
这个作者很懒,什么都没留下…
展开
-
二分查找-在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。同上求中点时也是两种方式,这里与上面相反,用第一种方式,遇到 ret=<target时,就会死循环。求中点时,同样有两种方式;如果采用第二种方式:遇到ret>=target时,就会死循环。注意:循环条件left<right;当两个指针相遇时既是答案,继续判断只会导致死循环。注意:循环条件left<right;当两个指针相遇时既是答案,继续判断只会导致死循环。如果数组中不存在目标值 target,返回 [-1, -1]。原创 2024-04-26 21:09:18 · 250 阅读 · 0 评论 -
二叉树-从前序与中序遍历序列构造二叉树
给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。在中序遍历中搜索根节点 node 的索引 ,可将 中序遍历 划分为 [ 左子树 | 根节点 | 右子树 ]根据中序遍历中的左(右)子树的节点数量,可将 前序遍历 划分为 [ 根节点 | 左子树 | 右子树 ]划分左右子树: 查找根节点在中序遍历 inorder 中的索引 i。前序遍历的首元素 为 树的根节点 node 的值。原创 2024-04-26 20:21:25 · 231 阅读 · 0 评论 -
双指针-接雨水
比如A水桶,左边的最大高度是1,右边不清楚,但是右边最大值是3,不会超过3,所以水桶的高度就是两者的最小值,左右两边同时进行计算】给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。将每个柱子当作水桶,左右为水桶高度;后缀最大值: suf_max;前缀最大值:pre_max;原创 2024-04-25 21:36:07 · 161 阅读 · 0 评论 -
链表-LRU缓存
如果你又从其他地方拿了一本书读完之后,打算放入这堆书中,如果这堆书中还有同名书,只是年份不同,那么就用这本书进行替换,如果没有同名书,由于“空间”不够使用,只能将最底下的书移走,再放入这本书。每当缓存命中时,就将命中的数据移动到列表的头部,每当缓存缺失时,就将新数据插入到列表的头部,并将列表尾部的数据淘汰掉。int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1。LRU是一种常用的缓存淘汰策略,用于管理缓存中的数据。刚开始时,使用一个哨兵节点。原创 2024-04-25 21:06:58 · 730 阅读 · 0 评论 -
动态规划-背包问题
背包问题(Knapsack Problem)是计算机科学和优化领域中的一个经典问题,它描述了一个简单而有趣的场景:给定一组物品,每个物品都有一定的价值和重量,要求在不超过背包最大承重的情况下,选择一些物品放入背包,使得背包中物品的总价值最大。原创 2024-03-28 20:37:32 · 571 阅读 · 0 评论