算法--学习笔记

算法的思想

我个人认为算法场景题的总体解题思路是: 先将算法题转换成数学题,通过数学计算得出数学公式,

然后按照公式写代码;若是推导不出来数学公式,那就用代码穷举所有场景(下下策)

解题思路:

根据问题类型,先列出最简单的几个值比如在变量=0,1,2,3的情况下的结果,然后分析这个结果之间的关系----->分析数列的关系,得到一个数列公式

算法思想分类

动态规划算法:

通过将问题拆解成子问题,将子问题拆解成孙子问题--->不停的拆解下去,直到拆解到已知答案的问题为止------->进而得到目标问题的答案

斐波那契数列是动态规划算法的经典体现之一: f(n)=f(n-1)+f(n-2)

具体解题思路与数列

小青蛙跳台阶问题:

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙上一个n级台阶总共有多少种跳法?
虽然求不出n与Sn的关系,但是能推导出Sn与S(n-1)和S(n-2)的关系=>
公式=S3=S2+S1 => Sn=S(n-1)+S(n-2)

背包问题:

数列公式

等差等比数列

 

 

斐波那契数列:

错排数列:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值