题目:洛谷P1059
下面是去重程序
但是这样运行时出现了越界问题
!提问1:为什么会越界?应该怎么解决?!
然后我换了种写法,绕开了越界(还是不知道为什么)
但是这样写,逻辑上有问题,运行结果如下
!提问2:为什么逻辑有问题?应该怎么解决?!
还有就是,_!有不用set和sort的Python3解法吗?_
谢谢!
补充:我将第二个循环改成了冒泡排序,但是仍有逻辑问题。请帮忙解决!
你需要先把里面的数转成整型,再来排序
- n = int(input())
- numbers = input().split(' ')
- numbers = [int(i) for i in numbers]
- list1 = []
- for num in numbers:
- if num not in list1:
- list1.append(num)
- # print(list1)
-
- for i in range(len(list1)):
- for j in range(1, len(list1)):
- if list1[j-1] > list1[j]:
- list1[j-1], list1[j] = list1[j], list1[j-1]
- print(list1)
- print(len(list1))
- print(' '.join(str(i) for i in list1))