哈希表

能解决

  • 去重问题
  • 统计重复元素的个数
  • 从小到大按一定顺序输出

但是根据哈希表的特点,哈希表无法记录元素进入的顺序

#include<cstdio>
int re[6] = {0};//哈希表的最大值应该大于等于待去重数组中的最大值 
int main(){
	int arr[] = {1,3,3,4,2,1,1,5,4};//换成char一样,128ASII打表 
	for(int i = 0;i <sizeof(arr)/sizeof(arr[0]);i++){
		re[arr[i]]++;
	}
	for(int i = 0;i <6;i++){
		if(re[i]){
			printf("%d",i);
		}
	}

}

使用set

用于哈希表无法开到太大的时候,更简洁,也会从小到大输出

#include<cstdio>
#include<set>
using namespace std;

int main(){
	set<int> s;
	s.insert(1);
	s.insert(3);
	s.insert(1);
	s.insert(1);
	s.insert(4);
	for(set<int>::iterator it = s.begin();it != s.end();it++){
		printf("%d ",*it);
	}
} 

求交补差集合

可以通过哈希表或者一一穷举的方法确定交集,通过集合运算确定其他集合

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-03
  • 2022-12-23
猜你喜欢
  • 2021-12-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-03
  • 2021-12-03
  • 2021-12-03
相关资源
相似解决方案