全部最大上升子序列
来源:互联网 发布:淘宝主营类目 大类目 编辑:程序博客网 时间:2024/05/20 10:56
#全部最大上升子序列#思路:fir保存前lis前n个数的最长子序列,sec保存前n个数的第二长子序列,则下一次的最长子序列是上一次fir加上lis[i]def maxup(lis): cur=1 fir=[[lis[0]]] sec=[[]] n=len(lis) while cur<n: fir_tmp=[] sec_tmp=[] tir_tmp=[] for i in fir: if i[len(i)-1]<=lis[cur]: s=i[0:] s.append(lis[cur]) fir_tmp.append(s) sec_tmp.append(i) for i in sec: if len(i)==0 or i[len(i)-1]<=lis[cur]: t=i[0:] t.append(lis[cur]) sec_tmp.append(t) tir_tmp.append(i) if fir_tmp: # print("fir_tmp has element") fir=fir_tmp sec=sec_tmp # print("fir for:", fir, "sec:", sec) else: # print("fir_tmp no element") fir=sec_tmp sec=tir_tmp # print("fir for:", fir, "sec:", sec) cur+=1 return fir#测试:lis="""2 1 4 3 6 5 8 7 10 9 12 11 14 13 16 15 18 17 20 19 22 21 24 23 26 25 28 27 30 29 32 31 34 33 36 35 38 37 40 39 42 41 44 43 46 45 48 47 50 49 52 51 54 53 56 55 58 57 60 59 62 61 64 63 66 65 68 67 70 69 72 71 74 73 76 75 78 77 80 79 82 81 84 83 86 85 88 87 90 89 92 91 94 93 96 95 98 97 100 99"""x=lis.split(" ")t1=time.clock()res=maxup(x)t2=time.clock()print(len(res),t2-t1)
0 0
- 全部最大上升子序列
- 最大上升子序列
- 最大上升子序列
- 最大上升子序列
- 最大上升子序列
- 1087 最大上升子序列
- 最大上升子序列和
- 最大上升子序列和
- 最大上升子序列和
- hdu1950 最大上升子序列
- 最大上升子序列(LIS)
- 最大上升子序列和
- 最大上升子序列和
- 最大上升子序列-python
- 最大上升子序列和
- 最大上升子序列和
- 最大上升子序列和
- 求最大上升子序列
- scrollingCache和animateCache 两个关于View绘制缓存的属性分析
- 数值分析 第一章 绪论
- kafka权威指南 第一章翻译 Meet Kafka
- oracle学习之:搭建DataGuard
- Effective Java: 并发
- 全部最大上升子序列
- javascript 烟花效果
- 66. Plus One 难度:easy
- 商人小鑫
- 并查集详解
- 自定义处理函数,文本处理,汉字截取
- 守护进程 设计
- 安卓开发中MVP模式的应用(附实例)
- SolrCloud 集群搭建