剑指offer
gccjjiayou
这个作者很懒,什么都没留下…
展开
-
青蛙变态跳台阶
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路:每个台阶可以看做是一块木板,让青蛙跳上去,n个台阶就有n块木板,最后一块木板是青蛙达到的位子,必须存在,其他(n-1)块木板可以选择是否存在,则每个木板有存在和不存在两种选择,(n-1)块木板就有2^(n-1)种跳法。 代码: function jumpFloor...原创 2019-06-03 12:44:30 · 126 阅读 · 0 评论 -
约瑟夫环
题目描述:约瑟夫环是一个数学应用题:已知n个人(编号1、2、..n)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个又从1开始报数,数到m的那个人又出列;依次规律重复下去,直到圆桌周围的人全部出列。请编写一个程序,给定n、m计算出列人员先后顺序。 思路:index索引0...n-1表示编号1...n,index = (index + 1) % n实现在0...n-1内递...原创 2019-06-04 10:39:12 · 214 阅读 · 0 评论 -
最大公共子串
题目描述:编程找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串"cad" 思路:比较两个字符串的长度,将短字符串str中从长到短的子串依次拿出,看是否在长字符串str1中出现 代码: function logestCommonStr(str1, str2) { if(str1.length < str2.length) [s...原创 2019-06-04 11:22:39 · 151 阅读 · 0 评论 -
用2*1的小矩形横着或者竖着去覆盖更大的矩形,请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法
题目描述:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形,请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法 思路:斐波拉契类算法题。由n=1时有1种方法,n=2时有2种方法,n=3时有3种方法,推出f(n) = f(n-1) + f(n-2) 代码: function ways(n) { if(n <= 2) return n var f...原创 2019-06-04 13:12:09 · 347 阅读 · 0 评论