集合包含元素29,36,37,37,39,39,955,955,955,961,961,962,962
如何拆分成
29,36,37,39,955,961,962
37,39,955,961,962
955
三个小集合?
集合包含元素29,36,37,37,39,39,955,955,955,961,961,962,962
如何拆分成
29,36,37,39,955,961,962
37,39,955,961,962
955
三个小集合?
用字典:
const input = [29, 36, 37, 37, 39, 39, 955, 955, 955, 961, 961, 962, 962];
const elementCounts = {};
input.forEach((element) => {
elementCounts[element] = (elementCounts[element] || 0) + 1;
});
const sets = [];
Object.keys(elementCounts).forEach((element) => {
const count = elementCounts[element];
for (let i = 0; i < count; i++) {
if (!sets[i]) {
sets[i] = new Set();
}
sets[i].add(parseInt(element, 10));
}
});
console.log(sets);
输出:
[
Set(7) { 29, 36, 37, 39, 955, 961, 962 },
Set(5) { 37, 39, 955, 961, 962 },
Set(1) { 955 }
]
val sourceArray: Array<Int> = arrayOf(29, 36, 37, 37, 39, 39, 955, 955, 955, 961, 961, 962, 962)
val array: MutableList<MutableSet<Int>> = ArrayList()
for ((index, value) in sourceArray.withIndex()) {
t2@ for (i in 0..index) {
if (array.size == i) {
array.add(HashSet())
array[i].add(value)
break@t2
} else {
if (array[i].add(value)) {
break@t2
}
}
}
}
15 回答8.2k 阅读
8 回答6k 阅读
4 回答4.5k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
python版 (新手python 应该还有更好的写法)