- 2024-12-15余弦相似度Cosine Sim
what余弦相似度是一种用于度量向量相似性的metric。\[cos\theta=\frac{A.B}{|A|.|B|}\]A.B:向量的内积|A|:向量的模长\(cos\theta\):的范围$[-1,1]$why余弦相似度的计算复杂度很低,对于稀疏向量而言,只用考虑非零向量Hownumpy实现importnumpyasnpdefcosine_s
- 2024-12-01常用算法函数
C++提供了丰富的算法函数库,主要通过头文件<algorithm>和<numeric>来提供常用的算法函数1.排序算法sort对范围内的元素进行排序,时间复杂度为\((O(\frac{N}{logN}))\)。sort(vec.begin(),vec.end());sort(a.begin(),a.end());//less<int>() //12345sort(a
- 2024-12-13leetCode 2591将钱分给最多的儿童
题目:给你一个整数 money ,表示你总共有的钱数(单位为美元)和另一个整数 children ,表示你要将钱分配给多少个儿童。你需要按照如下规则分配:所有的钱都必须被分配。每个儿童至少获得 1 美元。没有人获得 4 美元。请你按照上述规则分配金钱,并返回 最多 有多少个儿童获
- 2024-09-18移动语义
在C++中,"移动版本"是指使用了移动构造函数或移动赋值运算符的对象构造过程。这种过程可以显著减少资源的复制开销。移动语义简介移动语义允许将资源(如动态分配的内存)从一个对象转移到另一个对象,而不是复制这些资源。它通过以下方式实现:移动构造函数:用于创建一个新对象,并将
- 2024-07-03关于自定义unordered_set\unordered_map中Hash和KeyEqual:函数对象和lambda表达式简单应用
以unordered_set为例,首先在cppreference中查看其模板定义:可以看到Hash类默认是std::hash<Key,KeyEqual类似,本文将Hash以函数对象写出,将KeyEqual以lambda写出。classhashvec{ public: size_toperator()(constvector<int>&vec)const{ returnhash<int>()(vec[0])+hash