算法
文章平均质量分 75
123114515
这个作者很懒,什么都没留下…
展开
-
最长递增子序列O(n^2)算法和O(nlogn)算法
问题描述:给出n个数,求出其最长不下降子序列的长度,比如n=5,5个数是{4,6,5,7,3};其最长下降子序列就是{4,6,7},长度为3。一、简单的O(n^2)的算法 很容易想到用动态规划做。设lis[]用于保存第1~i元素元素中最长不下降序列的长度,则lis[i]=max(lis[j])+1,且num[i]>num[j],i>j。然后在lis[]中找到最大的一个转载 2010-04-28 10:01:00 · 2095 阅读 · 0 评论 -
动态规划 - 硬币问题
1. 问题描述: 给定n种硬币,每种硬币有很多枚,每个硬币的值分别为v1,v2..vn,给定一个价格为m的商品,问可以有多少种付款的方法? 2. 解题思路: 这种问题是非常典型的动态规划问题,不过要搞清楚在这个问题中动态规划的“状态”以及“状态转移方程”是什么 ? 1. 状态:这道题当中的“状态i”为使用前“i”种硬币时能有多少种付款方式,这里我们用d[i][v]表原创 2010-04-29 10:42:00 · 1857 阅读 · 1 评论 -
算法学习之路
<br /><br />第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码, <br />因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打 <br />出来. <br />1.最短路(Floyd、Dijstra,BellmanFord) <br />2.最小生成树(先写个prim,kruscal要用并查集,不好写) <br />3.大数(高精度)加减乘除 <br />4.二分查找. (代码可在五行以内) <br />5.叉乘、判线段相交、然后写个转载 2010-06-20 13:00:00 · 412 阅读 · 0 评论