自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (7)
  • 收藏
  • 关注

原创 【经验记录】Ubuntu系统安装xxxxx.tar.gz报错ImportError: No module named setuptools

【经验记录】Ubuntu系统安装xxxxx.tar.gz报错ImportError: No module named setuptools

2023-11-15 19:04:16 294

原创 博文总结:交叉熵损失函数与标签平滑

李宏毅机器学习2023作业04Self-attention、李宏毅机器学习2023作业03CNN和李宏毅机器学习2023作业02Classification都是分类问题,都涉及到了交叉熵损失函数以及起正则作用的标签平滑技巧,本次博文把以上两点整理总结下。

2023-11-02 21:34:56 286

原创 leetcode分类刷题:二叉树(九、二叉搜索树的节点插入删除)

二叉搜索树的节点插入删除通过返回不同情况下的对应节点来覆盖进行实现

2023-11-01 15:36:54 110

原创 leetcode分类刷题:二叉树(八、二叉搜索树特有的自顶向下遍历)

二叉搜索树是一个有序树:每个二叉树都满足左子树上所有节点的值均小于它的根节点的值,右子树上所有节点的值均大于它的根节点的值;利用该性质,可以实现二叉搜索树特有的自顶向下遍历

2023-10-31 22:22:10 138

原创 leetcode分类刷题:二叉树(七、中序遍历解决二叉搜索树)

1、二叉搜索树是一个有序树:每个二叉树都满足左子树上所有节点的值均小于它的根节点的值,右子树上所有节点的值均大于它的根节点的值;因此,它的中序遍历是一个升序序列,有没有重复元素根据具体题意而定2、本次总结的题型,采用迭代循环的中序遍历+标记节点的思路解决,简单直观

2023-10-30 10:38:28 48

原创 leetcode分类刷题:二叉树(六、构造二叉树)

构造二叉树的题目递归模板较为统一直观

2023-10-27 10:30:23 51

原创 leetcode分类刷题:二叉树(五、同时遍历两个二叉树)

同时遍历两个二叉树的题目采用的模板风格统一,较为直观简单

2023-10-26 14:26:51 39

原创 leetcode分类刷题:二叉树(四、与路径相关的递归)

与路径相关的递归问题通常是在前序遍历和层序遍历上稍加改动,将入栈或入队的元素调整为多元组的形式,将路径记录、路径之和等同时保存上

2023-10-25 09:29:22 35

原创 leetcode分类刷题:二叉树(三、与深度相关的递归)

1、与深度相关的递归问题不同于深度优先遍历的前、中、后序遍历,该类问题在递归调用时带有返回值,但它们的核心难点还是在于递归三要素中的提取重复的逻辑,缩小问题规模,即递归函数内部的操作2、在做了“110. 平衡二叉树”之后,会发现本次总结的题型全部都是自底向顶的递归,这种的逻辑还是有点难想的

2023-10-23 11:52:15 67

原创 leetcode分类刷题:二叉树(二、简单重复逻辑的递归)

二叉树问题的递归解法最难的地方在于递归三要素中的提取重复的逻辑,缩小问题规模,即递归函数内部的操作,深度优先遍历的前、中、后序遍历是二叉树最基本的题目,其对应的重复逻辑也是最简单的

2023-10-21 13:17:52 89

原创 leetcode分类刷题:如何更好地理解递归

参考知乎上递归下的一个高赞回答,觉得写的非常好,挑选有助于自己理解的内容进行简单总结。

2023-10-20 17:05:26 152

原创 李宏毅机器学习2023作业(目录)

2023.09.20更新 作业01的一键式执行Strong Baseline完整代码已整理好,提取码统一设置2023。

2023-09-20 22:05:37 594

原创 leetcode&lintcode分类刷题:图论(三、多源最小距离问题)

1、本次总结的题目通常是多个源头节点分别求解到达目标节点的最小距离,目标节点可能为多个,也可能为一个;要采用广度优先搜索的方法,但先提前入队的不是源头节点了,而是目标节点,由目标节点为基准一圈一圈的更新能够达到的“新目标”位置,每一圈更新能够达到的位置最多只会访问一次2、常见的题型会设置障碍物,在一些细节的特殊情况上,需要稍微注意下:源头节点&目标节点都不存在或其中一个不存在的情况,距离标记采用同尺寸的距离矩阵3、有的题目比较难一点,会求解多个源头节点到所有目标节点距离之和的最小值

2023-09-18 11:49:30 498

原创 leetcode&lintcode分类刷题:图论(二、单源最小距离问题)

1、本次总结的题目通常采用广度优先搜索的方法,由于是求单个源头节点到达目标节点的最小距离,因此,按照广度优先搜索的方法一圈一圈的更新能够达到的位置,然后判断位置中是否有目标节点,每一圈更新能够达到的位置最多只会访问一次2、常见的题型会设置障碍物、距离更新的规则,稍微复杂点的题目会增加传送门、设置最多可通过几个障碍物等,因此,在一些细节的特殊情况上,需要稍微注意下:源头节点或目标节点本身处在障碍物位置(无法到达)、源头节点和目标节点位置相同(最小距离为0)

2023-09-18 11:32:12 84

原创 leetcode&lintcode分类刷题:图论(一、连通域/岛屿问题)

1、本次总结的题目通常是在二维矩阵考察连通域/岛屿问题,常用的方法包括深度优先搜索、广度优先搜索和并查集,根据具体的题目可以选择最合适的方法,我个人优选在逻辑思维上简单直观的广度优先搜索方法2、二维矩阵考察连通域/岛屿问题,包括简单的连通域染色、岛屿数量、飞地数量、岛屿面积等,复杂一点的题目考察对每个连通域/岛屿如何更好地标记,比如最大人工岛(简单的数字标记)、岛屿形状(相对位置连起来的元组或字符串标记)等

2023-09-16 15:19:06 399

原创 leetcode分类刷题:二叉树(一、简单的层序遍历)

from typing import List, Optional, Unionfrom collections import deque'''559. N 叉树的最大深度给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。示例 1: 输入:root = [1,null,3,2,4,null,5,6] 输出:3题眼:二叉树的层序遍历思路:一般 层序遍历的基础上,

2023-09-14 18:00:05 1086

原创 leetcode分类刷题:队列(Queue)(三、优先队列用于归并排序)

1、当TopK问题出现在多个有序序列中时,就要用到归并排序的思想了2、将优先队列初始化为添加多个有序序列的首元素的形式,再循环K次优先队列的出队和出队元素对应序列下个元素的入队,就能得到TopK的元素了3、这些题目好像没有TopK 大用小顶堆,TopK 小用大顶堆反着来的经验了,得顺着来了:TopK 大用大顶堆,TopK 小用小顶堆

2023-09-12 21:31:39 301

原创 leetcode分类刷题:队列(Queue)(二、优先队列解决TopK简单问题)

1、优先队列好像一般都叫堆,以大顶堆为例,顶部第一个元素最大,底部最后一个元素最小,自顶向底是递减的(更准确的说是非递增的),对外只能访问顶部第一个元素(对应索引为0)和底部最后一个元素(对应索引为-1);在Python中,heapq默认维护小顶堆,构造大顶堆时需要在入堆时添加相反数2、本次博客总结下用优先队列解决TopK简单问题,比如数组中第K大或小的元素、单个序列里第K大或小的距离、根据元素的出现频率排序的问题

2023-09-12 21:31:11 386

原创 leetcode分类刷题:队列(Queue)(一、单调队列)

单调队列,看起来是与单调栈对应起来的一样;但是做题的时候感觉单调队列不像单调栈一样,能根据题意自然形成

2023-09-12 19:49:36 199

原创 leetcode分类刷题:基于数组的双指针(四、小的移动)

leetcode上有些题是真的太难了,正常读题之后完全想不到要用双指针来求解,本次博客总结的题目是双指针初始时位于数组两端,哪个元素小就移动哪个指针

2023-09-11 12:00:27 132

原创 leetcode分类刷题:栈(Stack)(三、下一个更大的数)

1、本次博客总结的“栈(Stack)(三、下一个更大的数)”类型具体是指寻找任一个元素的右边/左边第一个比自己大/小的元素的位置,这与栈的先入后出思想一致2、这种题目用栈处理的算法模板往往叫做单调栈,是因为这种题目代码写完,刚好操作的栈内元素满足单调递增或者递减的规律,本质上还是题型题意符合栈的先入后出思想,所以才使用栈来处理,先入为主地按照单调栈来套模板不是很合适:是先有题型需要用栈处理刚好有个单调栈,不是先有单调栈要去套用解题

2023-09-11 11:41:42 249

原创 leetcode分类刷题:栈(Stack)(二、基本计算器类型)

1、顺着“逆波兰表达式”的题目继续做了下推荐的基本计算器类型的几道题,我的天,是真的难,不愧是hard级别的难题2、研究了好几天大佬的题解双栈解决通用「表达式计算」问题,还是不太明白为啥有一个新操作要入栈时,先把栈内可以算的都算了,先简单把大佬思路记录下来吧,后续再看

2023-09-08 16:08:07 270

原创 leetcode分类刷题:栈(Stack)(一、字符串相邻元素删除类型)

字符串相邻元素的删除问题,用栈来进行管理,会非常有效;这种题型排在后面的字母会先删除 与 栈先进后出 的思想一致,同时也要关注相邻元素的细节,是个隐含的连续子序列,否则即使思想上与栈一致,位置上不相邻,栈是没法处理的

2023-09-06 16:50:40 319

原创 leetcode分类刷题:字符串匹配KMP算法

字符串匹配过程中的KMP算法,也是一种双指针的特例,一个指针指向原串,另一个指针指向匹配串,原串指针负责遍历原串的元素,匹配串指针标记匹配串中当前第一个没匹配上的 位置(下次匹配要比较的位置)。

2023-09-03 13:20:43 312

原创 leetcode分类刷题:字符串及单词翻转

1、本文此次总结的题型“leetcode分类刷题:字符串及单词翻转”较为简单,是双指针法在字符串及单词翻转类题型中的应用2、如果单词翻转类题型加了O(1)空间复杂度的要求,算法思路会变得稍微复杂一点

2023-09-01 11:57:26 298

原创 leetcode分类刷题:易混题辨析一、209. 长度最小的子数组 vs 560. 和为K的子数组

这两道题都是对连续子数组加和进行考察,细节区别在于数组元素在209. 长度最小的子数组为正整数(窗口增加元素递增,减少元素递减),在560. 和为K的子数组为整数209. 长度最小的子数组采用滑动窗口的算法,560. 和为K的子数组采用前缀和+哈希表的算法

2023-08-31 18:06:14 213

原创 leetcode分类刷题:哈希表(Hash Table)(四、前缀和 处理连续子数组)

本文总结的题型同样为对连续子数组加和进行考察,区别于leetcode分类刷题:滑动窗口(一、基本子数组类型)的是,数组元素为整数,不是正整数了,因此需要按照 前缀和(按照闭区间形式,当前索引位置的值也算进去好理解)+哈希表 的思路进行解决,最后会发现这种题型就是leetcode分类刷题:哈希表(Hash Table)(一、简单的两数之和)的扩展,在解题模板上会有点类似

2023-08-31 17:54:38 664

原创 leetcode分类刷题:基于数组的双指针(三、有序数组的元素求和)

1、有点像“leetcode分类刷题:二分查找(Binary Search)(一、基于索引(定义域)的类型)”的前提,数组是排序好的,然后求解的目标是元素之和,不是查找某个元素第一次大于等于数组元素的索引位置2、稍微复杂化的题型是对三元组、四元组等的求解,就像“leetcode分类刷题:哈希表(Hash Table)(一、简单的两数之和)”中所提到的,这类数组的元素求和题目,难点在于求解的目标,这里需要返回答案的值构成的三元组、四元组等,就需要考虑答案的去重问题;额外可以考虑加上 特殊情况的判断

2023-08-30 11:42:22 91

原创 leetcode分类刷题:哈希表(Hash Table)(一、简单的两数之和)

1、当需要快速判断某元素是否出现在序列中时,就要用到哈希表了。2、本文针对的总结题型为简单的两数之和问题,这种题目的难易程度取决于求解的目标,如果需要返回的是答案的索引、个数,那么就相对简单一些;如果需要返回答案的值构成的二元组、三元组之类的,就需要麻烦点考虑去重的问题了

2023-08-30 10:16:16 312

原创 leetcode分类刷题:哈希表(Hash Table)(三、循环存在问题)

1、当需要快速判断某元素是否出现在序列中时,就要用到哈希表了。2、本文针对的总结题型为给定的序列或需要构造的序列中是否存在循环,与 160. 相交链表、 141. 环形链表、142. 环形链表 II的题型一样。

2023-08-28 21:17:28 206

原创 leetcode分类刷题:哈希表(Hash Table)(二、数组交集问题)

1、当需要快速判断某元素是否出现在序列中时,就要用到哈希表了。2、本文针对的总结题型为给定两个及多个数组,求解它们的交集。接下来,按照由浅入深层层递进的顺序总结以下几道题目。3、以下题目需要共同注意的是:对于两个数组,我们总是尽量把短数组转换为哈希表,以减少后续在哈希表中的元素查找时间。

2023-08-28 21:16:28 778

原创 leetcode分类刷题:链表(二、双指针)

本文针对的总结题型为采用双指针来解决

2023-08-27 23:41:42 198

原创 leetcode分类刷题:链表(一、创建虚拟头节点)

本文针对的总结题型为建立虚拟头节点解决的问题,这类问题在进行对头节点的操作时,与其它节点会不一致,因此建立虚拟头节点使得所有节点的操作一致,最后返回dummyHead.next

2023-08-27 23:40:05 232

原创 leetcode分类刷题:矩阵顺时针模拟

1、这种题目是对代码熟练度考察,模拟顺时针建立或访问矩阵,需要注意矩阵是否为方阵2、具体思路:以圈数为循环条件,每一圈都坚持左闭右开的区间规则;当小的行列值为奇数,最后一圈为一行或一列或一个数字的不完整圈3、细节:把 起始圈的上下左右边界 和 i,j标记矩阵的赋值位置 放在圈数循环外部,以方便完整圈数遍历完后使用这些变量;同时,圈数循环内部的最后要对这些变量进行更新

2023-08-26 11:41:29 676

原创 leetcode分类刷题:滑动窗口(四、两个序列+窗口不定长类型)

1、同样是给定两个序列,判断短序列在长序列中最短的覆盖连续子序列,那么此时的滑窗长度就大于等于短序列长度了,变为不定长的了2、本文总结的题型短序列同样为滑动窗口+哈希表+matchKeys标记(覆盖的键数量),这里的覆盖含义恰好为上篇总结中的刚好匹配或过匹配,看起来上篇总结像是本文总结的题型的特殊情况,因为本文的解法和上篇完全一样,且把题型和模板对应起来理解的更深刻

2023-08-24 21:14:18 197

原创 leetcode分类刷题:滑动窗口(三、两个序列+窗口定长类型)

1、通过对滑动窗口前两个题型的总结,我们几乎已经习惯在给定的一个序列里使用滑动窗口的模板解题了,本次对应的“三、两个序列+窗口定长类型”,也是考察连续子数组、连续子串问题,只不过这次会给定两个序列,判断短序列在长序列中是否存在字母异位词或排列2、对于这类题目,通常需要先把短子串转为待匹配的哈希表,再定义一个matchKeys标记,计数滑动窗口内的元素与待匹配的哈希表的键的刚好匹配或过匹配的数量

2023-08-24 21:00:14 208

原创 leetcode分类刷题:滑动窗口(二、重复元素类型)

考察连续子数组、连续子串问题时,往往需要滑动窗口进行维护,即设置左右指针维护滑动窗口的左右边界进一步结合连续子数组、连续子串中对重复元素个数、种类进行考察时,需要使用和维护哈希表这类问题最关键的还是思考清楚左右指针如何更新:右指针遍历数组,左指针在哈希表满足一定条件时更新

2023-08-23 11:59:10 78

原创 leetcode分类刷题:滑动窗口(一、基本子数组类型)

滑动窗口是双指针法的一种特殊形式,两个指针分别标记滑动窗口的左右边界,且右指针负责遍历元素, 关键在于思考清楚窗口的左边界如何更新需要注意数组中的全部元素都是正数,满足 窗口增加元素后的和/积递增,减少元素后的和/积递减

2023-08-22 23:08:10 91

原创 leetcode分类刷题:二分查找(Binary Search)(四、基于值域的数组/矩阵类型)

基于值域的二分法与基于定义域的题型不同,它的目标是从一“特殊排序序列”中确定“第k个元素值”,而不像基于定义域的题型是从排序序列中找小于等于特定target值的第一个索引;同时,针对“特殊排序序列”,往往需要嵌套使用双指针法进行操作,进一步增加了对应题型的难度。

2023-08-21 18:27:53 296

原创 【深度解析→博文总结】李宏毅机器学习2023作业05Transformer(Machine Translation)

本次文章总结记录作业05Transformer的调参经验,由于本次作业没有Kaggle提交网址,因此没有Public Test和Private Test的结果,只有在Validation上的分数,并根据之前作业经验,假定Validation上的分数与Test分数基本一致,欢迎入门和深入机器学习知识的朋友们能在评论区多多交流,共同进步。

2023-04-17 21:40:07 524 2

MSP430_PWM与呼吸灯的综合应用

利用MSP430 的定时器产生占空比可变的方波信号,并通过控制该占空比, 实现LED 的亮度的变化按逐渐由最暗到最亮,再由最亮到最暗,如此循环。 要求分别可以通过串口和按键控制呼吸灯的快慢。

2018-01-24

MSP430_PWM控制的呼吸灯

这是一个MSP430单片机的综合应用,利用PWM信号产生呼吸灯的效果,具体功能为:利用MSP430的定时器产生占空比可变的方波信号,并通 过控制该占空比,实现LED的亮度的变化按逐渐由最暗到最亮,再由最亮到最暗,如此循环。要求分别可以通过串口和按键控制呼吸灯的快慢。

2018-01-24

MSP430_定时器模块_按键检测

MSP430单片机定时器模块,实现功能:每1ms进入一次time中断,10ms进行一次按键检测,控制灯亮灯灭。

2018-01-18

MSP430单片机_串口控制的流水灯

串口控制的流水灯实验,具体要求:编写一个流水灯程序,利用串口调试助手向单片机发送字 符,发送不同的字符时,两个LED灯轮流闪烁效果不同,至 少做出两种及以上效果。

2018-01-14

MSP430 流水灯程序

编写一个流水灯程序,利用LauchPad 板上的两个LED和一个按键,实现每按下一次按键,两 个LED灯轮流闪烁效果发生改变一次的功能。 基本功能:每次按键LED 闪烁次数依照3 次,4 次 ,5次,3 次... 的循环进行改变。需要在按键抬起后才 开始闪烁。

2018-01-06

MSP430IO口操作_按键

单片机实验的入门课,即掌握IO口的操作,以MSP430为开发板,实现按键控制灯亮灯灭功能。

2018-01-05

msp430g2xx3

msp430单片机使用手册(G系列),在如今的单片机实验中,msp430以其的性价比优势成为单片机实验开发板的主流。

2018-01-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除