
算法设计与分析
文章平均质量分 92
Albert Darren
The best way to predict the future is to invent it !
展开
-
一维动态规划-连续子序列和最大值
连续子序列和最大值1.问题引入前面介绍了利用分治算法求解股票买卖问题,并且已经知道这个问题可以转化为求连续子序列和的最大值问题。如股票价格为[10,11,7,10,6][10,11,7,10,6][10,11,7,10,6],那么前后两日的收益差值为[1,−4,3,−4][1,-4,3,-4][1,−4,3,−4]。原问题就变换成给定一个序列,找出其中连续累加值最大的子序列,序列[1,−4,3,−4][1,-4,3,-4][1,−4,3,−4]中[3]=3[3]=3[3]=3即为连续累加值最大的子序列,原创 2021-05-04 15:03:20 · 512 阅读 · 0 评论 -
一维动态规划-拾取硬币
问题引入假如有n个硬币排在一行,如: c[0],c[1],…,c[n−1]c[0],c[1],\dots ,c[n-1]c[0],c[1],…,c[n−1]要求不能拾取相邻的两个硬币,以获得累加面值最大的拾取子序列。比如,有面值如下的硬币: 5,1,2,10,6,25,1,2,10,6,25,1,2,10,6,2可以拾取5+2+6=13,也可以拾取1+10+2=13。以上两种拾取的硬币均不相邻,因此都是符合要求的拾取方式。但是,最大总面值的拾取应是5+10+2=17。这个拾取首先没有相邻的硬币,而且是原创 2021-05-03 20:04:03 · 1199 阅读 · 0 评论 -
一维动态规划-求解斐波那契数列
1.????利用记忆自顶向下实现斐波那契数????1.1 ????斐波那契数列由以下递归式定义????:f(n)={n,n=0,1f(n−1)+f(n−2),其他\begin{aligned}f(n)=\begin{cases}n,&n=0,1\\f(n-1)+f(n-2),&其他\end{cases}\end{aligned}f(n)={n,f(n−1)+f(n−2),n=0,1其他1.2 当n=5时的斐波那契数列递归树????为了便于理解,将利用时间复杂度 O(原创 2021-05-03 12:54:58 · 438 阅读 · 0 评论