数组
2020-12-05 本文已影响0人
王小鹏的随笔
例题1: https://leetcode-cn.com/problems/unique-number-of-occurrences/ 1207. 独一无二的出现次数
思路1:判断哈希的长度和set的长度
思路2:哈希计数 + 数组排序
思路3:哈希计数 + set 重复判断
时间复杂度:O(n)
空间复杂度:O(n)
代码实现:
# 思路1:判断哈希的长度和set中的长度
class Solution:
def uniqueOccurrences(self, arr: List[int]) -> bool:
dic = Counter(arr)
return len(dic) == len(set(dic.values()))
# 思路2:哈希计数+数组排序
class Solution:
def uniqueOccurrences(self, arr: List[int]) -> bool:
dic = Counter(arr)
nums = list(dic.values())
nums.sort()
for i in range(1, len(nums)):
if nums[i] == nums[i-1]:
return False
return True
# 思路3:哈希计数+ set重复判断
class Solution:
def uniqueOccurrences(self, arr: List[int]) -> bool:
dic = Counter(arr)
arr = list(dic.values())
visited = set()
for i in range(len(arr)):
if arr[i] not in visited:
visited.add(arr[i])
else:
return False
return True