看不懂这段代码在干什么,求解[face]emoji:029.png[/face]
3条回答 默认 最新
- CSDN专家-深度学习进阶 2021-05-14 10:48关注
你这个是查找给定序列的最长递增子序列的吧,如果number大于end-start,返回空;否则先进行range(start,end)举个例子
range(1,10):指定start=1,end=10,默认step=1,生成可迭代对象,包含[1, 2, 3, 4, 5, 6, 7, 8, 9]
然后
返回sample(range(start,end),number)
sample(序列a,n)
功能:从序列a中随机抽取n个元素,并将n个元素以list形式返回。
def subAscendingList(lst): '''返回最长递增子序列''' for length in range(len(lst), 0, -1): #按长度递减的顺序进行查找和判断 for sub in combinations(lst, length): #判断当前选择的子序列是否为递增顺序 if list(sub) == sorted(sub): #找到第一个就返回 return sub def getList(start=0, end=1000, number=20): '''生成随机序列''' if number > end-start: return None return sample(range(start, end), number)
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
- ¥15 matlab有关常微分方程的问题求解决
- ¥15 perl MISA分析p3_in脚本出错
- ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
- ¥15 ubuntu虚拟机打包apk错误
- ¥199 rust编程架构设计的方案 有偿
- ¥15 回答4f系统的像差计算
- ¥15 java如何提取出pdf里的文字?
- ¥100 求三轴之间相互配合画圆以及直线的算法
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考