- 2024-11-07LeetCode HOT 100 记录
目录230.二叉搜索树中第K小的元素-力扣(LeetCode)199.二叉树的右视图-力扣(LeetCode)230.二叉搜索树中第K小的元素-力扣(LeetCode)相当于把二叉搜索树从小到大排序,而二叉搜索树有一个特点,就是顺序左子树<根节点<右子树,因此可以考虑使用中序遍历/***Definitionfo
- 2024-10-30独热编码(One-Hot Encoding)
一、独热编码出现之前:针对无序离散的分类特征,机器学习算法的分类器并不能直接进行数据处理。因为,分类器通常处理的数据是连续且有序的。但是我们可以对这些离散的特征数据建立映射表来让其有序并且连续起来。例如:针对一个人对象,我们可以假设其属性进行了如下映射。性别特征:["男"
- 2024-10-30LeetCode Hot 100:多维动态规划
LeetCodeHot100:多维动态规划62.不同路径思路1:动态规划classSolution{public:intuniquePaths(intm,intn){if(m==1||n==1)return1; //dp[i][j]:到达(i,j)的不同路径数vector<vector<int>>dp(m+1,vec
- 2024-10-30LeetCode Hot 100:技巧
LeetCodeHot100:技巧136.只出现一次的数字思路1:哈希表classSolution{public:intsingleNumber(vector<int>&nums){unordered_map<int,int>hashMap;for(int&num:nums)hashMap[num]++;for(auto&[x,
- 2024-10-14【LeetCode Hot 100】31. 下一个排列
https://leetcode.cn/problems/next-permutation/description/这里下个排列的意思是按字典序的排列,C++STL中算法默认也是按照字典序排列来操作。C++STL中提供了对应的接口next_permutation,下面记录一下力扣给的题解,这种方法允许数据重复,据说STL也是采用的这种方法。从后向前
- 2024-09-29【LeetCode Hot 100】22. 括号生成
题目描述要求生成所有“合法”的括号字符串,就首先需要弄清楚括号字符串的合法性定义,也就是说如果我们现在有一个由小括号组成的字符串,该如何判断其是否符合要求。此前做过判断括号串是否合法的题目,那道题目中一般在遍历过程中维护一个栈,因为每个后括号都需要在已经遍历的子串中找
- 2024-09-28各种CLOCK算法
这篇文章的背景是操作系统里的页缓冲。LRU要求每次访问某个页的时候都进入trap,由操作系统把这个页放到栈顶。显然这是不能接受的。所以一般采用CLOCK算法或者其变种,其特点是在hit的时候,只需要由硬件执行一个很简单的操作(通常是设置访问位),把这次访问记录下来即可。然后在合适的时
- 2024-09-27【LeetCode Hot 100】21. 合并两个有序链表
题目描述最简单粗暴的想法是将两个链表的所有元素拿出来放在一个数组中,再将此数组排序,最后生成一个新链表并返回。由于给出的参数本身就是两个排好序的链表,可以进行一次遍历,就能保证元素仍然是有序的:每次比较当前指针指向的两个元素的大小,较小的拿出来作为当前元素并将指针向前移
- 2024-09-26【LeetCode Hot 100】20. 有效的括号
题目描述这个题目在讲解栈的应用的时候是常用的例子,在遍历括号串的时候维护一个栈结构,如果当前字符是前括号,暂时没有与之配对的后括号,则先将其压入栈中。C++STL和Java都提供了对应的容器,但是由于我们知道栈的大小不可能超过括号串的长度,所以也可以手动用数组模拟,这样运行速度可
- 2024-09-24【LeetCode Hot 100】17. 电话号码的字母组合
题目描述本题需要用回溯算法遍历穷举所有可能的解。回溯算法维护一个字符串序列,记录已经有的字母排列,用一个索引值记录该字符串序列下一个将要处理的位置。每次递归将索引值加一,回溯之后将字符串序列中上次加入的字符退出序列中,枚举下一个可能的值。总的来说是一个较为基础的回溯
- 2024-09-23LeetCode Hot 100
1Tree1.1Recursion1.1RecursionPreOrderTraversalhttps://leetcode.cn/problems/binary-tree-preorder-traversal/#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val
- 2024-09-22【LeetCode Hot 100】15. 三数之和
题目描述回忆一下之前做过的两数之和,用的是哈希表存储已经遍历过的元素。但是本题要求返回值中不能有重复元素,因此需要去重,强行用哈希表的话,去重操作会很复杂。我们可以通过哪些方法来保证返回的数组中不包含重复的三元组?先将整个数组进行排序,可以保证答案数组中有\((a,b,c)\)
- 2024-09-20【LeetCode Hot 100】11. 盛最多水的容器
题目描述首先记录一下题目的解法。使用双指针记录容器的边界,从边界最大的容器开始,i位于最左侧,j位于最右侧。每次向中间移动高度较小的那个指针,并使用一个变量res记录容器最大的容积(即最终的答案)。//C++classSolution{public:intmaxArea(vector<int>&height){
- 2024-09-19【LeetCode Hot 100】4. 寻找两个正序数组的中位数
题目描述要求出两个数组的中位数,第一想法当然是将这两个数组进行归并排序,然后直接得到排序后长数组的中位数。由于本题的两个数组都是排序后的数组,因此省去了排序的步骤。这种方法的时间复杂度为\(O(m+n)\),空间复杂度由于要存储排序后的长数组,所以也是\(O(m+n)\)。有没有相对更
- 2024-09-17【LeetCode Hot 100】5. 最长回文子串
题目描述考虑回文字符串的特点,从左往右和从右往左读都是一样的,就是说字符串成了“轴对称”。要求一字符串的最长回文子串,我们可以遍历每个字符,求以该字符为轴对称中心的最长对称子串(或者以该字符和下一个字符为中间两个字符的对称子串),在所有这样的子串中长度最长的那个就是我们要
- 2024-09-16【USB3.0协议学习】Topic3·三种Reset Events分析
USB3.0中的三种ResetEvents1.PowerOnResetPowerOnReset被用来代指上电复位,当一个device接入到roothub或者外置hub的时候,该device检测到Vbus信号从无效变为有效,会自动执行复位。(注意,selfpowereddevice不通过Vbus供电,但是Vbus发生转变的时候它同样会执行复位)1.1软件设置P
- 2024-09-14【LeetCode Hot 100】3. 无重复字符的最长子串
题目描述本题我最开始的想法就是使用双指针与滑动窗口,滑动过程中维护一个集合,集合内保存滑动窗口内部的所有字符,右边的指针每指向一个新的元素,就判断该元素(字符)是否在集合内,如果已经存在,就说明此时将要出现重复字符,以及无重复字符的子串已经达到了最长的长度,之后我们需要移动左边
- 2024-09-13【LeetCode Hot 100】2. 两数相加
题目描述题目手下留情给出的链表使用逆序表示加数,因此我们可以从链表头开始逐位相加。我总结了一下有几点需要注意:显然加法需要注意进位,此外需要格外注意的是最后一位没有加数时,还需要考虑进位是否被置位,如果最后的进位为1,我们还需要创建一个新的节点。当其中一个链表走完,需要
- 2024-09-13【LeetCode Hot 100】1. 两数之和
题目描述显然,最简单和直接的想法是使用暴力枚举:使用双重循环枚举符合条件的下标对并返回。这种方法的时间复杂度是平方级别\(O(N^2)\)。对于每个确定的数x,我们需要找到target-x对应的下标,暴力枚举方法使用的是直接遍历,这个操作的复杂度是线性的,而如果我们使用哈希表将元素及其
- 2024-09-09[NLP] One-Hot编码
1OneHot编码1.1定义One-Hot编码,又称独热编码。从方法性质上讲,它是一种向量表示方法,属于自然语言处理领域中的词袋模型。独热编码方法使用N位状态寄存器对N个状态进行编码,每个状态都有独立的寄存位;并且在任意时候,N为状态寄存器中都仅有一位有效状态,该位的状态值则表征了
- 2024-08-30Clickhouse备份与恢复
一、安装clickhouse-backup1、下载安装包cd/server/tools/wgethttps://github.com/Altinity/clickhouse-backup/releases/download/v2.4.33/clickhouse-backup-linux-amd64.tar.gz2、创建存放clickhouse-backup的目录,并解压mkdir-pv/data/clickhouse-backuptarxvfcl
- 2024-08-25【深度学习】文本张量表示方法
1文本张量表示将一段文本使用张量进行表示,其中一般将词汇为表示成向量,称作词向量,再由各个词向量按顺序组成矩阵形成文本表示.举个例子:["人生","该","如何","起头"]==>#每个词对应矩阵中的一个向量[[1.32,4,32,0,32,5.2],[3.1,5.43,0.34,3.2],[3.21,
- 2024-08-20webpack 热更新实现原理
修改entry配置首先通过启动webpack-dev-server会修改webpack.config.js的entry配置,新增两个入口文件:webpack-dev-server/client/index.jswebpack/hot/dev-server.jswebpack-dev-server/client/index.js包含的是客户端向服务端通信的相关代码。webpack/hot/dev-s
- 2024-08-19《花100块做个摸鱼小网站! 》第三篇—热搜表结构设计和热搜数据存储
⭐️基础链接导航⭐️☁️阿里云活动地址
- 2024-08-19图片热区。vue3+ts和vue3+js写法(js没写完数据,功能完善)2
不知道为啥我上一篇的图片热区被移出首页,其实我主要是是为了自己看,其次才是分享,这段时间我又整理了一下热区,将里面的功能进一步完善了一下;解决一下问题:1.解决拖拽到规定区域外后松开鼠标再次进入后,坐标错误的问题2.新增6个方向的拖拽放大缩小热区区域3.新增放大了图片区域4.