- 博客(9)
- 收藏
- 关注
原创 递归算法1:汉诺塔
3.上面的函数可以理解为当a上的盘子数量不为0时,先将最后一个盘子上面的n-1个盘子通过c移动到b,之后再把最后一个盘子从a移动到c,最后将n-1个盘子从b通过a移动到c,5.具体的移动过程还需要大家用打断点去观察。2.下面是用python的解题步骤。1.这道可以让大家深刻的理解递归。大家看这道经典的汉诺塔问题。4.当然只是可以这样理解。
2024-12-10 21:12:34
191
原创 动态规划2:使用最小花费爬楼梯
3.大家可以想象,当爬第三阶台阶时,前两阶梯肯定以往积累的体力值为0,所以可以设置这两个值为0;当爬到第n阶台阶时,如果比较前两阶梯所花费的体力值,则不管要考虑前两阶单个的体力值,还需要加上以前的,理解到这里,就好办了。7.最后返回count[len],则为爬到楼顶的最低花费。count 用于统计 第n阶楼梯需要的体力值。5.我们可以先定义一个count数组,1.和上一题类似,但要稍微难一些。4.大家先看完整代`码。6.定义输入数组的长度。
2024-11-28 21:05:48
206
原创 动态规划1:爬楼梯问题
5.下面请看解法,定义数组 a[0],a[1]=1;,作为初始值,然后每次依次遍历后面的值,最终,返回a[n]则为第n阶所需要的方法数。3.不难看出,其实就是斐波那契数列,这种题有两种解法,一种是递归,另一种则是动态规划。输入 0 1 2 3 4 5。输出 1 1 2 3 5 8。4.动态规划可以节约时间复杂度。2.我们可以把楼梯数简化出来。
2024-11-28 20:48:28
174
原创 前缀和算法
2.如果这道题遍历解决的话,需要遍历很多次求和,及大浪费了时间复杂度,所以我们采用了前缀和的算法。<4>sum存第l个数到第r个数的和,比如sum[5]表示第一个数字到第五个数字的和。6.注意sum[r]-sum[l]会把a[l]减了,这时候需要加上a[i]5.每一次访问的求的sum[l]到sum[r]之间的和都存在sum1里面。<1.>首先定义a数组用于存输入的数字。<2>n为输入数组元素的个数。7.最后看评分结果,通过。1.大家看洛谷这道题目。<3>m为访问的个数。4.之后上完整的代码。
2024-11-21 20:41:24
309
原创 跳石头(二分+贪心)
7-请看完整的代码(上面的两个函数请结合mian函数和全局变量来看)2-图像分析 (以前两块石头的距离为最短跳跃距离时)5-设置bool函数check为二分的条件。6-设置find函数,返回最终的结果。3- 不难看出,当最短跳跃距离。4-所以可以直接二分查找。8-最后看下结果,通过。
2024-10-29 22:46:24
174
原创 木材加工(二分)
对于 100%100% 的数据,有 1≤n≤1051≤n≤105,1≤k≤1081≤k≤108,1≤Li≤108(i∈[1,n])1≤Li≤108(i∈[1,n])。例如有两根原木长度分别为 1111 和 2121,要求切割成等长的 66 段,很明显能切割出来的小段木头长度最长为 55。木头长度的单位是 cmcm,原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。第一行是两个正整数 n,kn,k,分别表示原木的数量,需要得到的小段的数量。1-段数为y,段长为x,x和y成反比例关系。
2024-10-27 21:23:52
777
原创 用二分查找求一元三次方程
5-for从 int型的i开始循环,便于不断找两个范围的区间,比如(100 101);2_二分查找的本质就是在两个数的开区间,不断缩小接近那个结果。4-四个系数一定要设为全局变量,以便于Fac1函数更简洁。6-但传到Fac1函数时,一定要设定为double型。7-while的条件设为0.00001使结果精度更高。1_像这种解高次一元方程的题都可以用二分查找来解决。如果0时,也是同样的道理,3_ 下面直接上代码。8-不断二分为mid。
2024-10-26 21:34:23
230
原创 高精度减法
1.这里给大家介绍一下高精度算法2.这种题普遍以存入字符串再倒着存入数组来解决3.下面以高精度减法为例,为大家讲解4.下面请看洛谷这道题目高精度减法。
2024-10-26 19:53:11
206
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人