
动态规划
CAFEBABE丶
颤抖吧丶发际线
展开
-
剑指Offer_斐波那契数列
题目描述: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 思路:首先对于这个**数列,就是n1=1;n2=2;n3=n1+n2;就是一个简单的递推关系式;这种递推关系的题目其实就是动态规划。 程序: 这个常规基于数组的,用了O(n)的额外空间;考虑到...原创 2018-06-29 15:49:04 · 216 阅读 · 0 评论 -
剑指Offer_跳台阶
题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路:和上一题思路一模一样,简单的动态规划; 程序: Copy: public int JumpFloor(int target) { if(target<1) return ...原创 2018-06-29 15:57:56 · 231 阅读 · 0 评论 -
剑指Offer_变态跳台阶
题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:就是挑青蛙的改进版,到每个台阶当前的跳法就等于当前台阶所有台阶的跳法之和;程序: Copy: public int JumpFloorII(int target) { int ...原创 2018-06-29 16:02:43 · 172 阅读 · 0 评论 -
剑指Offer_矩形覆盖
题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 思路:这个也是跳青蛙的变形;但是要自己找出当前的铺法和以前铺法的关系;注意到; 情况一:当前块的话可以由上一块加上当前这一块的竖着放; 情况二:或者是 上上一块加上两块横着放;注意;由上...原创 2018-06-29 16:22:48 · 155 阅读 · 0 评论 -
剑指Offer_最小子数组的最大和
题目描述: HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住...原创 2018-07-02 14:13:11 · 291 阅读 · 0 评论 -
剑指Offer_丑数
题目描述: 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路:这个题目也是动态规划的问题,我们可以这么考虑:给三个指针,i2,i3,i5,表示他们分别指向的数即将要乘2,乘3,乘5,然后比较dp[i2*2],dp[i3*...原创 2018-07-02 15:16:31 · 176 阅读 · 0 评论