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

《算法笔记》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;
}
http://www.xdnf.cn/news/2132.html

相关文章:

  • 【Redis】hash类型
  • 每日c/c++题 备战蓝桥杯(P1252洛谷 马拉松接力赛)
  • 《深入理解 AOP》
  • 数图信息科技邀您共赴第二十五届中国零售业博览会
  • spring中的@bean注解详解
  • Springoot、Flowable快速学习
  • 制作一款打飞机游戏25:添加数据
  • C++与Python编写二进制转十进制
  • 一种双模式机器人辅助股骨干骨折钢板植入方法
  • 【AI平台】n8n入门3:第二个工作流,链接网上大模型(含三种方式)
  • wireshark从HEX转储导入使用方法
  • 数学基础 -- 欧拉恒等式的魅力:让复数旋转起来!
  • MATLAB基础应用精讲-【基础知识篇】发布和共享 MATLAB 代码
  • 网络流量分析 | 流量分析基础
  • 机器学习基础 - 回归模型之线性回归
  • SD2351核心板:重构AI视觉产业价值链的“超级节点”
  • 【高频考点精讲】JavaScript事件循环机制:从宏任务微任务到渲染时机
  • MySQL数据库(13) 用户管理
  • Redis高效赋能机器学习实战:用FastAPI打造智能钓鱼邮件识别与缓存系统全流程解析
  • nacos设置权重进行负载均衡不生效
  • MongoDB 图片 URL 存储异常问题解决方案
  • C++入侵检测与网络攻防之网络嗅探以及ARP攻击
  • 【论文阅读】平滑量化:对大型语言模型进行准确高效的训练后量化
  • Linux文件管理(2)
  • 第十二届蓝桥杯 2021 C/C++组 直线
  • 深入理解网络原理:UDP协议详解
  • 如何用WordPress AI插件自动生成SEO文章,提升网站流量?
  • 每日两道leetcode(补充一)
  • Linux网络编程 原始套接字与ARP协议深度解析——从数据包构造到欺骗攻防
  • 配置Ubuntu18.04中的Qt Creator为中文(图文详解)