数据结构—集合

一:集合

1、特点:元素没有顺序;不重复

2、集合可以用来检擦某个元素是否存在;或者检查是否从在重复的元素

3、常见的操作:

#创建集合
my_set={1,2,3,4,5}
#添加元素
my_set.add(6)
#访问元素(集合是无序的;不能通过下标索引访问元素;只能通过遍历访问元素)
for i in my_set:
    print(i)
#删除元素
my_set.remove(5)
my_set.add(9)#等价与将5修改为9
#查找元素
if 3 in my_set:
    print("yes")
#集合的长度
length=len(my_set)
print(length)
#集合的排序
sorted_set = sorted(my_set)
print(f"Sorted set: {sorted_set}")

二:刷题

217 存在重复元素

(1)思路1:使用hash表;判断当前元素是否在新的容器当中;如果在的话返回True;否则将当前元素加入到新的容器当中;进行下一轮判断;当数组种的元素都遍历完了之后还没有符合条件就返回False

(2)思路2:利用集合的特点直接一步解决

class Solution:
    def func(self,nums):
        nums_set=set(nums)
        return len(nums_set)!=len(nums)

nums = [1,2,3]
solution=Solution()
result=solution.func(nums)
print(result)

**705 构建哈希集合 **

class MyHashSet:

    def __init__(self):
        # 初始化一个大小为 10^6 + 1 的布尔数组
        self.size = 10**6 + 1
        self.data = [False] * self.size

    def add(self, key: int) -> None:
        # 将对应索引位置设为 True,表示 key 存在于集合中
        self.data[key] = True

    def contains(self, key: int) -> bool:
        # 返回对应索引位置的布尔值,表示集合中是否存在 key
        return self.data[key]

    def remove(self, key: int) -> None:
        # 将对应索引位置设为 False,表示从集合中移除 key
        self.data[key] = False
posted @ 2024-09-09 10:20  Gsupl.落浅~  阅读(12)  评论(0编辑  收藏  举报