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

来源:互联网 发布:父母的神逻辑知乎 编辑:程序博客网 时间:2024/06/03 21:36

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

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

大神的链接

#将字符串类型的数据改为整数类型的,便于比较大小def get_int(list):list_2 = []for num in list:num = int(num)list_2.append(num)return list_2num = 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 = 0for 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 = '')


原创粉丝点击