1 class Solution: 2 def groupThePeople(self, groupSizes: List[int]) -> List[List[int]]: 3 dic = {} 4 n = len(groupSizes) 5 for i in range(n): 6 if groupSizes[i] not in dic: 7 dic[groupSizes[i]] = [i] 8 else: 9 dic[groupSizes[i]].append(i) 10 res = [] 11 for k,v in dic.items(): 12 #k:每组几个,v集合 13 temp = [] 14 for j in range(len(v)): 15 temp.append(v[j]) 16 if len(temp) == k: 17 res.append(temp[:]) 18 temp.clear() 19 return res
哈希思想,在dic中记录每一种size对应的元素的集合。
然后按照size的大小进行分组,每个子集中都包含size个元素。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步