栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

力扣刷题-贪心算法-1282

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

力扣刷题-贪心算法-1282

题目描述

有 n 位用户参加活动,他们的 ID 从 0 到 n - 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.length == n
1 <= n <= 500
1 <= groupSizes[i] <= n2

题解看代码!

题解
    //其实昨天那道题 思路和我是差不多的 只不过 是没敢踏出那一步
    //就是感觉有点麻烦,不过答案还是完美实现了
    public List> groupThePeople(int[] groupSizes) {
        //其实就是和你想的一样啦,就是用一个二维list,然后数组的一维下标就代表它的组员数
        //结合贪心算法,就是每一个数进来,先找一下有没有自己的组织(和自己数目相同)的数组,有的话就添加
        //无的话就新创建一个,然后等到数组长度和自己的list的长度一样时,就说明当前的满了,如果有相同的就要重新创建了。
        int key=0;
        List> lists=new ArrayList<>();
        ArrayList[]hashArray=new ArrayList[groupSizes.length+1];
        //int []a=new int[];是开辟一个int整型的数组,
        // 所以 ArrayList[]hashArray=new ArrayList[n+1];
        //就是开辟一个ArrayList的数组,也就是一个二维数组
        //为什么要n+1个,怎么说,最多有n个数,而且是从1开始,所以开辟n+1个空间,不管最后有没有用到

        for(int i=0;i< groupSizes.length;i++)
        {
            key=groupSizes[i];
            if(hashArray[key] ==null)
            {
                ArrayList list = new ArrayList<>();
                hashArray[key] = list;
                //要先建一个 list进去 ,因为本来数组里面就是这个元素
                //你必须要 现有这个元素吧,有了这个元素才好在这个元素添加东西。
                //二维数组每个元素 都是一个list,而这个list本来是没有的,所以要新建。
            }

         hashArray[key].add(i);

            if(hashArray[key].size()==key)
            {
                 lists.add(new ArrayList(hashArray[key]));//这还是同样的问题,就是原本简单的想法可能是 直接丢一个hashArray[key],但是不行阿,
                //这样很容易对原本的hashArray[key]造成影响,因为后面还要对它操作啥的,所以怎么办呢?还是同样道理,创一个新的ArrayList没然后丢一个引用过去!
                 hashArray[key].clear();
            }
        }
return lists;
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/288441.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号