部分来源于:
持续更新!!!!!!!!!!!!!!!!!
LeetCode 热题 100 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台
C++总结(7):STL无序容器之unordered_set、unordered_map、unordered_multiset、unordered_multimap详解_无序互异容器-优快云博客
哈希表理论:
一般哈希表都是用来快速判断一个元素是否出现集合里。
哈希函数:
哈希函数(Hash Function)是一种数学函数,它接收任意大小的输入数据,并输出一个固定长度的值(通常称为哈希值或散列值)
用哈希函数来快速索引和查找数据
哈希碰撞:
是指不同的输入经过哈希函数计算后得到相同的哈希值的现象
拉链法和线性探测法 解决。
常见的三种数据结构:
- 数组
- set (集合)
- map(映射)
有效的字母异位词:
#include<iostream>
#include<string>
using namespace std;
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++) //数组没有record.size()用法
{
if(record[i]!=0)
{
return false;
}
}
return true;
}
};
int main()
{
Solution solution;
string s ="anagram";
string t = "nagaram";
std::cout<<solution.isAnagram(s,t)<<std::endl;
return 0;
}
在 C++ 中,获取数组的大小的方法取决于数组的类型:
std::array的用法:
#include <iostream>
#include <array>
int main() {
std::array<int, 5> arr = {1, 2, 3, 4, 5};
std::cout << "数组大小: " << arr.size() << std::endl; // 输出 5
return 0;
}
数组类型 | 获取大小的方法 | 适用范围 |
---|---|---|
C 数组 | sizeof(arr) / sizeof(arr[0]) |
仅限局部作用域 |
C 数组(函数参数) | 需要手动传递大小 |