Python作业【简单算法题】

总结:

这次题目当中考点是基础知识,还有一些简单的算法,比如说动态规划,插入排序这些,以及切片的知识

筛选法:

这里说一下我对他的理解,之前一直不能理解为什么开个根号就可以减少算法的复杂度,提高其性能,后面的话就知道了。因为你看,假设求小于等于9的素数,答案是2,3,5,对吧,然后呢,我们正常的做法就是搞两层遍历,外层是确定范围,就是求小于几的素数,对吧,然后内层再遍历,如果此时有数字能刚好被其整除的话且不是其本身或者1,那就说明这个数不是素数,那就说明它是个合数,合数就是有最小因子的数,而且在内层遍历的时候你会发现它遍历的范围就是刚好小于与他自身开根号后的那个数字范围。因为再乘下去那个和就比他大了。

动态规划:

1、给定一个包含若干数字的列表A,编写程序计算满足0≤a≤b

这里代码就给图片了,因为比较简单,大家自己敲敲,增加印象:

Python作业【简单算法题】_第1张图片

​2、6岁的小明上楼梯,一步只能迈1个或3个台阶,现在有段15个台阶的楼梯,要想上到第15个台阶,编写程序计算小明有多少种上法。

需要注意的是这里是从0阶梯开始的,所以之前我一直认为dp[3]为1,还怀疑gpt是错的,我的问题,哈哈哈。

Python作业【简单算法题】_第2张图片

其他:

3、生成一个包含20个[1, 50]随机整数的列表,将其循环左移5个元素。所谓循环左移是指,每次移动时把列表最左侧的元素移出列表然后追加到列表尾部。

知识点是切片

Python作业【简单算法题】_第3张图片

你可能感兴趣的:(题解,算法)