[2,1,3,3,3,2]意思是
0号ID所属组的人数为2
1号ID所属组的人数为1
2号ID所属组的人数为3
3号ID所属组的人数为3
4号ID所属组的人数为3
5号ID所属组的人数为2...显然,0和5为一组,1单人一组,2,3,4为一组
所以结果为[[0,5],[1],[2,3,4]]
分析:
最简单的情况,相同groupSize的且个数等于groupSize的,对应下标一定是同组。...如[2,2,2,2](不可能出现[2,2,2]),此时答案可以是0,1,2,3的任意两两组合。
算法:
1. 将groupSize中相同的值的"下标"放在一个数组中;
2....如果“相同的值的个数”等于“相同值”,就把该数组加到结果集;
否则:
创建“相同值的个数/2”个数组,将下标均分在这些数组中,加入结果集;
3. 返回结果集
如何完成第一步?...以[2,2,2,2]为例:
创建“相同值的个数/groupSizes[i]”个数组 --> 创建2个数组
每组均分“相同值”个数组 --> 即每组均分2个数据,[0,1] [2,3]
解答
这个算法有个错误