【发布时间】:2020-07-14 05:58:59
【问题描述】:
给定m 集合中包含n 元素的n 整数,找到出现在最大集合中的元素不是最大次数。
这是我实现的算法。
- 逐一扫描输入
- 对于每个元素,计数器值都会递增。 这个计数器表示在集合之外的集合中出现的频率。我希望我在这里很清楚
- 输出计数
max(count)中的最大元素
int main(){
set <int> inner1; //Here ,I have implemented just 2 sets
set <int> inner2;
set< set<int> > outer; //a set of sets
set< set<int> >:: iterator new_it;
set<int >::iterator it;
map <int ,int> count; //the counter
cout<<"enter the number of sets"<<endl;
cin>>m;
cout<<"enter the number of elements in each set"<<endl;
cin>>n;
for (int i=0;i<n;i++){
int temp;
inner1.insert(temp);
}
for (int i=0;i<n;i++){
int temp;
inner2.insert(temp);
}
outer.insert(inner1); // a set of two sets .
outer.insert(inner2);
for (){
for (){
// THe MAIN CODE
}
我的问题-
- 我想以这样的方式实现它,它可以使用用户输入创建
m sets in a set。 我现在尝试从 2 组开始实现它,但是我如何将它实现为m设置为 根据用户的意愿。
cout<<"enter the number of sets"<<endl;
cin>>m;
cout<<"enter the number of elements in each set"<<endl;
cin>>n;
我希望你明白要点
- 获取出现在最大集合中的元素的算法,即主代码
提前致谢。
【问题讨论】:
-
您可以将一个集合插入到集合中,因此只需循环用户输入并执行此操作。迭代这组集合并作为元素添加到另一个地图中,并且该元素所属的集合没有。
-
您不需要存储多于一套。数完一个集合的元素后,这个集合就不再有趣了。
-
这个前提,“m 个包含 n 个元素的 n 个整数的集合”听起来很奇怪,因为它说了两次同样的事情。
-
@molbdnilo 是的..我认为你是对的,因为我已经复制粘贴了这个问题。