1282 使用者分組(貪心演算法)

2022-06-07 11:42:16 字數 1094 閱讀 8691

n位使用者參加活動,他們的 id 從0n - 1,每位使用者都 恰好 屬於某一使用者組。給你乙個長度為n的陣列groupsizes,其中包含每位使用者所處的使用者組的大小,請你返回使用者分組情況(存在的使用者組以及每個組中使用者的 id)。

你可以任何順序返回解決方案,id 的順序也不受限制。此外,題目給出的資料保證至少存在一種解決方案。

示例 1:

輸入:groupsizes = [3,3,3,3,3,1,3]

輸出:[[5],[0,1,2],[3,4,6]]

解釋:

其他可能的解決方案有 [[2,1,6],[5],[0,4,3]] 和 [[5],[0,6,2],[4,3,1]]。

示例 2:

輸入:groupsizes = [2,1,3,3,3,2]

輸出:[[1],[0,5],[2,3,4]]

思路:

輸入為groupsizes = [3,3,3,3,3,1,3];

二元組maps=[[3, 0], [3, 1], [3, 2], [3, 3], [3, 4], [1, 5], [3, 6]];

排序後maps=[[1, 5], [3, 0], [3, 1], [3, 2], [3, 3], [3, 4], [3, 6]];

分為三組,大小分別為1,3,3,即grp1=[[1, 5]],grp2=[[3, 0], [3, 1], [3, 2]],grp3=[[3, 3], [3, 4], [3, 6]];

可與第4步合併,給使用者分組故無需size,grp1=[5],grp2=[0,1,2],grp3=[3,4,6]。

class solution:

def groupthepeople(self, groupsizes: list[int]) -> list[list[int]]:

maps=[[v,k] for k,v in enumerate(groupsizes)]

maps.sort(key=lambda x:x[0])

i=0res=

while i

Leetcode1282 使用者分組

有 n 位使用者參加活動,他們的 id 從 0 到 n 1,每位使用者都 恰好 屬於某一使用者組。給你乙個長度為 n 的陣列 groupsizes,其中包含每位使用者所處的使用者組的大小,請你返回使用者分組情況 存在的使用者組以及每個組中使用者的 id 你可以任何順序返回解決方案,id 的順序也不受...

LeetCode題目 1282 使用者分組

建立map集合,用於存放分組的list集合 迴圈開始,當分組的索引在map集合中如果沒有,就建立乙個放進去 如果在map集合有,則將當前的值放入map對應的索引的list集合中 class solution 建立list集合來存相同索引的值 list list map.get groupsizes ...

leetcode 1282 使用者分組

題目描述 有 n 位使用者參加活動,他們的 id 從 0 到 n 1,每位使用者都 恰好 屬於某一使用者組。給你乙個長度為 n 的陣列 groupsizes,其中包含每位使用者所處的使用者組的大小,請你返回使用者分組情況 存在的使用者組以及每個組中使用者的 id 可以任何順序返回解決方案,id 的順...