当前位置: 首页 > news >正文

《算法笔记》4.2小节——算法初步->哈希

谁是你的潜在朋友

在这里插入图片描述

#include <iostream>
using namespace std;int main() {int n,m,favobook;while(cin>>n>>m){int book[210]={0},reader[210]={0};for (int i = 1; i <= n; ++i) {cin>>favobook;book[favobook]++;reader[i]=favobook;}for (int i = 1; i <= n; ++i) {if(book[reader[i]]>1){cout<<book[reader[i]]-1<<endl;}else{cout<<"BeiJu"<<endl;}}}return 0;
}

分组统计

在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;int main(){int m;cin>>m;for (int i = 0; i < m; ++i) {int n;cin>>n;int num[n],col[n];for (int j = 0; j < n; ++j) {cin>>num[j];}for (int j = 0; j < n; ++j) {cin>>col[j];}int max_num=*max_element(num,num+n);int max_col=*max_element(col,col+n);int hash_table[max_col+1][max_num+1];memset(hash_table,0,sizeof(hash_table));for (int j = 0; j < n; ++j) {hash_table[col[j]][num[j]]++;}vector<int> num2;sort(num,num+n);unique_copy(num,num+n, back_inserter(num2));vector<int> col2;sort(col,col+n);unique_copy(col,col+n, back_inserter(col2));for (int j = 0; j < col2.size(); ++j) {cout<<col2[j]<<"={";for (int k = 0; k < num2.size(); ++k) {cout<<num2[k]<<'='<<hash_table[col2[j]][num2[k]];if(k<num2.size()-1) cout<<',';}cout<<'}'<<endl;}}return 0;
}

Be Unique (20)

在这里插入图片描述

#include <iostream>
#include <cstring>
using namespace std;int main() {int n;while(cin>>n){int m;int hash_table[10010],num[100010];memset(hash_table,0,sizeof (hash_table));for (int i = 0; i < n; ++i) {cin>>m;num[i]=m;hash_table[m]++;}bool flag=false;for (int i = 0; i < n; ++i) {if(hash_table[num[i]]==1){cout<<num[i]<<endl;flag= true;break;}}if(!flag)  cout<<"None"<<endl;}return 0;
}

String Subtraction

在这里插入图片描述

#include <iostream>
using namespace std;int main(){string str1,str2;getline(cin,str1);getline(cin,str2);bool hashtable[128]={false};for(char c:str2){hashtable[c]= true;}for(char c:str1){if(!hashtable[c])cout<<c;}cout<<endl;return 0;
}

暴力算法,时间超限,没有通过测试

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;int main() {string str1, str2;getline(cin, str1);getline(cin, str2);for (int i = 0; i < str1.size(); ) {int j;for (j = 0; j < str2.size(); ++j) {if(str1[i]==str2[j])str1.erase(i,1);break;}if(j==str2.size()) i++;}cout<<str1<<endl;return 0;
}

相关文章:

  • 观测云数据在Grafana展示的最佳实践
  • Milvus(7):Schema、主字段和自动识别
  • Apache Spark 源码解析
  • Go 语言 TCP 端口扫描器实现与 Goroutine 池原理
  • Modbus主从通信功能码与报文格式
  • 如何在SpringBoot中通过@Value注入Map和List并使用YAML配置?
  • 电子学会—青少年软件编程 python一级等级考试真题—2025年03月
  • 20242817-李臻-课上测试:信号处理
  • uniapp自定义封装tabbar
  • TDengine 数据缓存技术
  • iOS/Flutter混合开发之PlatformView配置与使用
  • 记录一次无界微前端的简单使用
  • Ubuntu 上手动安装 Go 环境并解决“可执行文件格式错误”
  • Mac「brew」快速安装Redis
  • 输入电抗器和输出电抗器的作用-杭州干扰净电子科技
  • 二叉树的遍历(广度优先搜索)
  • Springboot 手搓 后端 滑块验证码生成
  • 【GCC bug】libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found
  • ES历史版本下载
  • uniapp-商城-36-shop 购物车 选好了 进行订单确认2 支付方式颜色变化和颜色滤镜filter
  • 净海护渔,中国海警局直属第一局开展伏季休渔普法宣传活动
  • 马克思主义理论研究教学名师系列访谈|丁晓强:马克思主义学者要更关注社会现实的需要
  • 全国人大常委会关于授权国务院在中国(新疆)自由贸易试验区暂时调整适用《中华人民共和国种子法》有关规定的决定
  • 小核酸药物企业瑞博生物递表港交所,去年亏损2.81亿元
  • 全国人民代表大会常务委员会公告〔十四届〕第十号
  • 三大猪企一季度同比均实现扭亏为盈,营收同比均实现增长