算法
算法与数据结构、leetcode经典题解或者面试经典题
一条活在淡水湖里的鱼
这个作者很懒,什么都没留下…
展开
-
BERT-based Lexical Substitution论文阅读
摘要: 之前的词汇替换是通过查询目标词汇的同义词来实现的(e.g. WordNet), 然后基于文本对候选词打分。这种方法有两个限制: 忽略了不是同义词的但是效果很好的候选词汇 没有考虑同意替换对整个文本的影响 主体: 对目标词进行embedding dropout,使得可以平衡目标词的语义信息和上下文信息。 如果完全遮盖,返回的候选词可能与原词意思不同,却能满足上下文信息; 如果不遮盖,返回的候选词大约99.99%会预测到原词。 计算相似度时,将BERT前四层的表示做原创 2022-04-02 16:50:42 · 1081 阅读 · 2 评论 -
BERT论文阅读笔记
介绍 1、双向预训练模型,使用MLM(masked language model): 2、预训练模型,降低模型复杂度 BERT是自监督学习(无监督学习),结构是Transformer Encoder. 结构: pre-training: 预训练阶段,使用无标注文本数据 fine-tuning: 在下游任务使用监督数据进行微调 GPT Transformer只可以进行左边文本的自注意力计算 BERT可以进行双向注意力计算 输入/输出特征 输入单个句子:每个句原创 2022-04-02 14:43:49 · 1089 阅读 · 0 评论 -
桶排序算法
桶排序 桶排序应用于数组中对元素数量的排序。 主要思路: 记录每种元素出现的频数,需要遍历一次数组,时间复杂度为O(n)。这里使用哈希来记录,C++中使用unordered_map.并记录出现的频数的数目max_count。 定义一个bucket二维数组(大小为max_count + 1,bucket[i]代表出现次数为i次),根据第一步记录的unordered_map中的值,依次将unordered_map中的元素放入桶中。循环完成后,bucket[1]中存放的是原始数组中出现了1次的元素,bucket原创 2021-04-13 00:17:27 · 109 阅读 · 0 评论 -
几种常见排序算法总结
对几种排序算法的总结 这篇文章将介绍几种常见排序算法,包括快速排序、归并排序、插入排序、冒泡排序、选择排序六种算法的模板,并介绍STL几种排序算法的调用方式。 1、快速排序 快速排序用到二分的思路,因此时间复杂度为O(nlogn)。快排需要先处理子问题、然后递归处理子问题(与归并不同,归并先递归处理子问题,然后合并处理子问题)。因为快排需要处理边界问题,划分不当会出现无限划分和0划分的问题,从而导致时间超限,给出模板如下: //快排模板1 void quick_sort(vector<int>原创 2021-04-12 11:12:05 · 150 阅读 · 0 评论 -
排序算法
快速排序: 思路 确定分界点,可以有q[l],q[(l+r)>>1],q[r],随机取边界值 调整区间,使得左边区间是小于等于x的值,右边区间是大于等于x的值 递归处理左右两段 代码模板: #include<iostream> using namespace std; const int N = 1e6+10; int a[N]; void quick_sort(int...原创 2020-03-22 23:12:42 · 75 阅读 · 0 评论 -
多源最短路径问题(bfs)
题目描述: 公司的程序员不够用了,决定把产品经理都转变为程序员以解决开发时间长的问题。 在给定的矩形网格中,每个单元格可以有以下三个值之一: 值0代表空单元格; 值1代表产品经理; 值2代表程序员; 每分钟,任何与程序员(在4个正方向上)相邻的产品经理都会变成程序员。 返回直到单元格中没有产品经理为止所必须经过的最小分钟数。 如果不可能,返回-1。 以下是一个4分钟转变完成的示例: 2 1 1...原创 2020-03-15 01:00:06 · 677 阅读 · 0 评论