您的位置:首页 > 编程语言 > Python开发

1045. 快速排序(25)--Python

2017-11-27 19:54 295 查看
这个开始看的数据这么大,应该很容易超时。的确,在第一次编写完后,只有测试点0过了,然后别的都是超时,所以就到网上找了找思路,发现了一种不错的判断主元的方法,就是把排好序的列表与原始列表进行比较,看看有哪些元素的位置没有发生改变,这些元素若是还是原始列表从头到现在的最大值,则有可能是主元,保存结果。

本来以为借用了大牛的思路,可以顺利的通过,谁知道测试点2又说格式错误,而且在反复提交的时候测试点1有时还会报超时, 真是跪了,每次遇见这种处理大数据的程序,老是挂,格式错误也没有发现是什么鬼。

大神的链接

#将字符串类型的数据改为整数类型的,便于比较大小
def get_int(list):
list_2 = []
for num in list:
num = int(num)
list_2.append(num)
return list_2

num = input()
num = int(num)
string = input()

list = string.split() #存放正常的数据列表
list = get_int(list)
my_list = string.split() #存放有序的数据列表
my_list = get_int(my_list)

my_list.sort()
list_1 = []
#判断列表中的每一个元素是否为主元
length = len(list)
max = 0
for i in range(length):
if list[i] > max:
max = list[i]
if list[i] == my_list[i] and max == list[i]:
list_1.append(max)

count = len(list_1)
print(count)
#从小到大输出结果
list_1.sort()
for n in list_1:
if n == list_1[-1]:
print(n)
else:
print(str(n) + ' ', end = '')

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: