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

哈希表day5

242 有效的字母异位词

思路就是转为ASCII码,然后用一个数组记录26位字母出现的次数

#include <string>
class Solution{
public:bool isAnagram(string s,string t){int record[26]={0};for (int i=0;i<s.size();i++){record[s[i]-'a']++;}for (int i=0;i<t.size();i++){record[t[i]-'a']--;}for (int i=0;i<26;i++){if (record[i]!=0) return false;}return true;}
};

349 两个数组的交集

这部分学习到的知识就多了
1、std::unordered_set,这是一个C++容器,底层是哈希表,查询复杂度为O(1),其次,他不允许有重复的值(也就是说,将vector nums的值放进去,会自动去重)
2、如何将vector的东西放进unordered_set中呢?

unordered_set<int> num_set(nums1.begin(),nums1.end());

同理,将unordered_set中的东西放进到vector中

vector<int> result(unordered_set.begin(),unordered_set.end())

3、如何对unordered_set中的元素进行查找呢?
使用nums_set.find(num) 如果找到了,那么就返回一个 指向该元素的迭代器,如果没找到,就返回nums_set.end()这个特殊的迭代器。

#include <vector>
class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { //参数为nums1的引用,nums2的引用unordered_set<int> result_set;  //自动去重 + 查找速度快(平均 O(1))unordered_set<int> nums_set(nums1.begin(),nums1.end());//构建一个新的unordered_set,把nums1放进nums_set中,使用的是迭代器的语法,从nums1的begin到nums1的endfor (int num:nums2){ //遍历 nums2 中的每一个数字 num。if (nums_set.find(num)!=nums_set.end()){    //如果nums_set.find(num)返回一个指向该元素的迭代器;如果没找到,那么就返回的是 nums_set.end(),这是一个“尾后迭代器”,表示“找不到”。result_set.insert(num); 
// 如果 num 存在于 nums_set 中:
// 返回一个 指向该元素的迭代器。
// 如果 num 不存在于 nums_set 中:
// 返回一个特殊的迭代器 —— nums_set.end(),表示“查找失败”或“无此元素”。}}return vector<int>(result_set.begin(),result_set.end()) //result_set.begin() 到 result_set.end() 形成一个范围,传给 vector 构造函数;}
};

202 快乐数

set.insert(num);
也就是将num加入到集合中

class Solution {
public:int getSum(int n){int result=0;while(n){result += (n%10)*(n%10);n = n/10;}return result;}bool isHappy(int n) {unordered_set<int> set;while(1){//不断循环int sum = getSum(n);if (sum==1){return true;}if (set.find(sum)!= set.end()){return false;}else{set.insert(sum);//新函数,将sum加入到set中}n = sum;}}
};

相关文章:

  • 【C++】给定数据长度n,采样频率f,频率分辨率是多少?
  • day37打卡
  • 微信小程序进阶第2篇__事件类型_冒泡_非冒泡
  • 精益数据分析(86/126):Parse.ly的转型启示——从用户增长到商业变现的艰难跨越
  • kali切换为中文
  • Golang 的协程调度小结
  • 原子操作(C++)
  • 初等数论--Garner‘s 算法
  • crash常用命令
  • JavaScripts API(应用程序编程接口)
  • 提问:鲜羊奶是解决育儿Bug的补丁吗?
  • 2025河北CCPC 题解(部分)
  • 人工智能如何协助老师做课题
  • A-9 OpenCasCade读取STEP文件中的NURBS曲面
  • MySQL日志文件有哪些?
  • PDF电子发票数据提取至Excel
  • AI时代新词-人工智能伦理审查(AI Ethics Review)
  • cannot access ‘/etc/mysql/debian.cnf‘: No such file or directory
  • Vue 核心技术与实战day04
  • LitCTF2025 WEB
  • 东台做网站的/海外网站
  • 榆林网站建设哪家好/网址安全中心检测
  • 建筑网建筑规范大全/软件排名优化
  • 子网站建设并绑定独立域名/百度关键词首页排名怎么上
  • 保定莲池区疫情最新公告/武汉seo公司哪家好
  • 临朐营销型网站建设/软文推广策划方案