De ion
从一列数中筛除尽可能少的数使得从左往右看,这些数是从小到大再从大到小的。
Input
输入时一个数组,数值通过空格隔开。
Output
输出筛选之后的数组,用空格隔开。如果有多种解雇哦,则一行一种结果。
Sample Input 1
1 2 4 7 11 10 9 15 3 5 8 6
Sample Output 1
1 2 4 7 11 10 9 8 6
def fun(arr):
length = len(arr)
lists = [[] for i in range(length)]
for j in range(length):
a = arr[j:]
alength = len(a)
if alength < 2:
if alength == 0:
continue
elif alength == 1:
lists[j].append(a[0])
else:
for i in range(alength):
if i == 0:
lists[j].append(a[0])
elif i == 1:
if a[1] < a[0]:
continue
else:
lists[j].append(a[1])
else:
if len(lists[j]) == 1:
if a[i]>lists[j][0]:
lists[j].append(a[i])
else:
continue
else:
if a[i] < lists[j][len(lists[j]) - 1] and a[i] > lists[j][len(lists[j]) - 2]:
lists[j].pop()
lists[j].append(a[i])
elif a[i] < lists[j][len(lists[j]) - 1] and a[i] < lists[j][len(lists[j]) - 2]:
continue
else:
lists[j].append(a[i])
return lists
def maxLength(a):
maxlength = 0
for list in a:
maxlength = max(maxlength, len(list))
return maxlength
def resultLists(a):
numList = []
maxlength = maxLength(a)
for list in a :
if len(list) == maxlength:
numList.append(list)
return numList
def prinrtFormate(arr):
resultstr = \"\"
for num in arr:
resultstr = resultstr + \" \" + str(num)
resultstr = resultstr[1:]
return resultstr
if __name__ == \"__main__\":
arr = input()
a = [int(n) for n in arr.split(\" \")]
allarr = []
maxarrlength = 0
for i in range(len(a)):
b = a[0:i+1]
c = a[i + 1:]
c = c[::-1]
numList1 = resultLists(fun(b))
numList2 = resultLists(fun(c))
numList3 = []
for list in numList2:
list = list[::-1]
numList3.append(list)
for list1 in numList1:
for list3 in numList3:
allarr.append(list1+list3)
maxarrlength = max(len(list1+list3),maxarrlength)
allarr2 = []
for element in allarr:
if (element not in allarr2):
allarr2.append(element)
for list in allarr2:
if len(list) == maxarrlength:
print(prinrtFormate(list))
继续阅读与本文标签相同的文章
上一篇 :
《算法技术手册》一3.5 算法举例
下一篇 :
《算法技术手册》一3.4.1 性能
-
1.98亿滴滴用户添加了紧急联系人 每天百万个订单行程分享给亲友
2026-05-14栏目: 教程
-
工程院院士刘韵洁:5G前景很大,但主要是行业应用
2026-05-14栏目: 教程
-
陆奇:看好5G技术,但应用好5G还需要时间
2026-05-14栏目: 教程
-
在Visual Studio中使用clang-tidy进行代码分析
2026-05-14栏目: 教程
-
甘薇贾跃亭曝出离婚消息,贾跃亭破产前转账51万美元,作为“家庭费用”
2026-05-14栏目: 教程
