数据结构
文章平均质量分 80
饼干饼干圆又圆
这个作者很懒,什么都没留下…
展开
-
经典算法题准备
数组nums升序排列,数组中的值互不相同。二分查找对于有序数组,可以使用二分查找的方法查找元素。我们将数组从中间分开,一定有一部分是有序的,[4,5,6]和[7,0,1,2]。可以分割出[l, mid],[mid+1, r]哪个部分有序。在排序数组中查找元素的第一个和最后一个位置三数之和LRU缓存请设计并实现一个满足LRU(最近最少使用)缓存约束的数据结构。实现LRUCache类:哈希表+双向链表LRU缓存机制可以通过哈希表+双向链表实现。双向链表按照被使用的顺序存储了这些键值对,靠近头原创 2024-08-05 16:06:10 · 730 阅读 · 0 评论 -
算法设计与分析期末复习(二)
*在求解任何一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其它局部解,依次解决各子问题,最后一个子问题就是问题的解。对于一个多阶段过程问题,最优策略是否存在,不仅依赖于该问题是否有最优子结构性质,而能否采取动态规划的方法,还要看该问题的子问题是否具有重叠性质。由于在所考虑的子问题空间中,总有θ(mn)个不同的子问题,因此用动态规划自底向上计算最优值能提高算法的效率。由最长公共子序列问题的最优子结构性质建立子问题最优值的递归关系,用c[i][j]记录最长公共子序列的长度。原创 2023-06-07 06:50:39 · 677 阅读 · 0 评论 -
Final-v2
什么是算法?算法是求解某一特定问题的一组有穷规则的集合,它是由若干条指令组成的有穷符号串。确定性:每一条指令都必须有确切的含义。不存在二义性,只有一个入口和出口。可实现性:算法可以通过已经实现的基本运行指令有限次来实现。输入:有另个或多个输入,取自于某个特定对象的集合。输出:有一个或多个输出,输出与输入有某些特定关系。有穷性:一个算法必须在执行有穷步后结束,且每一步都在有穷时间内完成。正确性可读性健壮性效率与存储量。原创 2023-06-06 06:58:43 · 253 阅读 · 0 评论 -
递归的学习
递归过程执行时需要多次调用自身。多个相同函数嵌套调用,信息传递和控制转移通过栈实现。设R = {r1,r2,…,rn}是要进行排列的n个元素,Ri = R - {ri}但其实斐波那契数列具有“无后效性”,只需要记住倒数前两个状态的结果即可。(ri)perm(X):在perm(X)的每个排列前加上前缀得到排列。设计一个递归算法:生成n个元素{r1,r2,…集合X中元素的全排列记为perm(X)递归问题解法在于:重复求解子问题。补充:递推求解斐波那契数列。原创 2022-10-15 06:24:49 · 576 阅读 · 0 评论