Gsupl.落浅~zbxGsupl.落浅~

08:32:10 PM

哥伦布

数据结构—集合

Gsupl.落浅·2024-09-09 10:20·20 次阅读

数据结构—集合

一:集合

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

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

3、常见的操作:

Copy
#创建集合 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:利用集合的特点直接一步解决

Copy
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 构建哈希集合 **

Copy
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 @   Gsupl.落浅~  阅读(20)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示

目录导航

一:集合
二:刷题