1.问题描述:
给定一个长度为NN的整数数组arrarr,返回去掉重复元素之后的数组(去掉重复元素前后数组元素相对次序不变)
2.样例:
输入:[3,4,3,6]
输出:[3,4,6]
解释:元素3重复,所以只需要保留一个元素3
而且去重前后数组元素相对次序不变,所以元素4还在元素3后面,元素6还在元素3,4后面
3.代码:
class Solution:
"""
@param arr: a integer array
@return: return the unique array
"""
def getUniqueArray(self, arr):
# write your code here
# new = []
# for item in arr:
# if item not in new:
# new.append(item)
# return new
return list(dict.fromkeys(arr))
这里使用Python语言有几种思路:1.可以使用 list(set(arr)).sort(key=arr.index) 使用set集合和list来处理,因为set之后的元素是无序的,所以还需要使用sort来排序。2.使用循环依次判断加入到一个新的list中输出。以上两种方法在本题测试时,都会出现超时的错误。3.使用list和dict字典来输出。dict的fromkeys方法可以依次取list中的元素为key,value默认为none。再list输出key的数组。
参考资料: