91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

無盡算法之用戶編組

發布時間:2020-08-11 09:32:49 來源:網絡 閱讀:175 作者:專注地一哥 欄目:編程語言

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] <= n

?

思路:

使用Hashmap

groupSizekey, ArrayList(ArrayList())value, 這里存放的Integer就是userId(也就是數組index)

插入策略:

先判斷是否有key,無key則直接生成新的ArrayList(ArrayList()), 并且添加一個子ArrayList, 同時插入userId

key再判斷取出的ArrayList內部的最后一個ArrayList長度是否等于對應的groupSize, 如果相等, 則追加到新組, 否則追加

題解:

public class Test {

????public static void main(String[] args) {

????????System.out.println(groupThePeople(new int[]{3,3,3,3,1,3,3}));

????}

?

????private static HashMap<Integer, ArrayList> resultMap = new HashMap<>();

?

????public static List<List<Integer>> groupThePeople(int[] groupSizes) {

????????ArrayList<List<Integer>> results = new ArrayList<>();

????function(){ //點差?http://www.kaifx.cn/question/kaifx/1799.html

????????for (int i=0;i<groupSizes.length;i++) {

????????????add(i,groupSizes[i]);

????????}

????????for (ArrayList i : resultMap.values()) {

????????????results.addAll(i);

????????}

????????return results;

????}

?

????static void ?add(int id, int groupSize) {

????????if (resultMap.get(groupSize) == null) {

????????????ArrayList<List<Integer>> groupList = new ArrayList<>();

????????????List<Integer> group=new ArrayList<>();

????????????group.add(id);

????????????groupList.add(group);

????????????resultMap.put(groupSize, groupList);

????????} else {

????????????ArrayList<List<Integer>> a = resultMap.get(groupSize);

????????????if (a.get(a.size() - 1).size() == groupSize ) {

????????????????List<Integer> group=new ArrayList<>();

????????????????group.add(id);

????????????????a.add(group);

????????????} else {

????????????????a.get(a.size() - 1).add(id);

????????????}

????????}

????}

}

?


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

会东县| 珲春市| 琼海市| 福州市| 新竹市| 宜川县| 太原市| 龙岩市| 伊金霍洛旗| 修水县| 静宁县| 泗水县| 涿鹿县| 天全县| 元江| 齐河县| 贡觉县| 潜山县| 定兴县| 鲁山县| 巴楚县| 汽车| 北安市| 金湖县| 靖西县| 乐业县| 鹤庆县| 弥渡县| 横峰县| 钟山县| 遂溪县| 驻马店市| 泰和县| 德令哈市| 类乌齐县| 瓦房店市| 嘉定区| 镇康县| 洞口县| 孝感市| 保定市|