Daily LeetCode – day0014 1282. Group the People Given the Group Size They Belong To

// 1282. Group the People Given the Group Size They Belong To
class Solution {
    public List<List<Integer>> groupThePeople(int[] groupSizes) {
        HashMap<Integer, ArrayList<Integer>> hashMap = new HashMap<>();
        for (int i = 0; i < groupSizes.length; ++i) {
            if (!hashMap.containsKey(groupSizes[i])) {
                hashMap.put(groupSizes[i], new ArrayList<>());
            }
            hashMap.get(groupSizes[i]).add(i);
        }
        List<List<Integer>> ans = new ArrayList<>();
        for (Map.Entry<Integer, ArrayList<Integer>> e : hashMap.entrySet()) {
            int i = 0;
            int listSize = e.getValue().size();
            while (i < listSize) {
                ans.add(new ArrayList<>());
                for (int j = 0; j < e.getKey(); ++i, ++j) {
                    ans.get(ans.size() - 1).add(e.getValue().get(i));
                }
            }
        }
        return ans;
    }
}
学习笔记:
这是一道用到哈希表的题目,我写得特别顺利,而且高效,但是不知道为什么速度是8ms,只击败了20%的用户。
可能因为我是把所有的遍历了一遍,分了组,然后再装起来。但是这应该没速度上的影响才对。最近工作繁忙,得等有空了再研究了。


关于樊轶群

一个善良的理想主义者。
此条目发表在每日LeetCode分类目录。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注