自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 LeNet-1989复现

LeNet-1989复现网络架构Input:32 * 32 * 1的单值图像Convolution:kernel_size=5,Padding = 0, stride=0,out_channel=6,所以输出为28【32-5+1】 * 28 * 6Subsampling:池化,size=2,stride=2,所以输出为14*14【(28-2)/ 2+1】*6Convolution:kernel_size=5,Padding = 0, stride=0,out_channel=16,所以输出为1

2021-10-02 09:32:44 159

原创 和为K的子数组(Leetcode-560)-前缀和+哈希表

题目原题连接:https://leetcode-cn.com/problems/subarray-sum-equals-k/知识点前缀和哈希表优化思路这道题思路非常有意思,由于题目只需要得到和为K的子数组,我们不需要得到中间的过程,因此我们可以利用哈希表优化,记录某个前缀和其对应的子数组数目。例如:target = 7,我们的哈希表记录了某一项<7,2>(前缀和为7的子数组的结果有2个),那么我们向后计算前缀和得到14时,14-7=7,由于哈希表中记录了<7,2&g

2021-08-27 11:10:39 150

原创 长度最小的子数组(Leetcode-209)-前缀和

题目原题连接:https://leetcode-cn.com/problems/minimum-size-subarray-sum/知识点前缀和思路我们可以计算前缀和nums,然后再对前缀和数组按序遍历查找每一个num[i]对应的第一个(因为要求最小长度) 大于或等于nums[i] + target的元素nums[j],这样得到j-i即是从i+1起满足条件第一个子数组的长度,我们每次对其更新最小长度。由于全部都是正数,因此前缀和必然是递增的数组,所以在查找的时候可以使用二分查找的方式

2021-08-27 10:39:03 277

原创 连续数组(Leetcode-525)-前缀和

题目原题连接:https://leetcode-cn.com/problems/contiguous-array/知识点前缀和思路我们可以将这题转换为”前缀和“去做,遇到1则和+1,遇到0则和-1。求出的sum在以前遇到过(用哈希表记录,只需要记录第一次),说明中间的部分就是具有含有相同数量的0和1的连续子数组,然后更新长度即可,以如下例子为例:(index) -1, 0, 1, 2, 3, 4, 5, 6, 7(num) /, 0, 1, 1, 0, 1, 1, 1, 0

2021-08-26 11:05:37 100

原创 Leetcode 二叉树刷题合集

题目列表Leetcode 100 相同的树(✩):https://leetcode-cn.com/problems/same-tree/Leetcode 108 将有序数组转换为二叉搜索树(✩✩):https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/Leetcode 110 平衡二叉树(✩✩✩):https://leetcode-cn.com/problems/balanced-binary-t

2021-08-12 21:40:02 186

原创 Leetcode 二分(三分)搜索刷题合集

题目列表Leetcode 34 在排序数组中查找元素的第一个和最后一个位置:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/Leetcode 35 搜索插入位置https://leetcode-cn.com/problems/search-insert-position/Leetcode 852 山脉数组的峰顶索引https://leetcode-cn.com/pr

2021-08-09 16:36:52 252

原创 最大正方形(Leetcode-221)-动态规划

题目原题连接:https://leetcode-cn.com/problems/maximal-square/知识点动态规划思路一开始没有找到这个组合为正方形的状态转移方程其实针对每一个正方形,例如最右下方的正方形,我们只需要观察其左侧、左上侧、上侧是否能组合即可(Line 13)。我们每次查看这三个方向上能够组合的正方形的长度,取最小值+1(自己为1)即为当前正方形能够组成的最大边长,所以状态转移方程为:当然,如果自己那一块为0,结果就是0,没法拼成正方形。如下为例子:我

2021-08-07 14:05:40 129

原创 最长回文子串(Leetcode-5)-中心扩散法(回文串)

题目原题连接:https://leetcode-cn.com/problems/longest-palindromic-substring/知识点中心扩散法(针对回文串)思路对于一个子串而言,如果它是回文串,并且长度大于 2,那么将首尾的两个字母去掉以后,它仍然是个回文串。例如对于字符串“acbca”,去掉首位的“a”以后,“cbc”仍然是回文串。我们可以从上述的例子中看出,我们选取某个元素i,从中心分别往两侧去扩散,直到两侧不一致为止,那么我们就可以获得以i元素为中心的最大回文串。

2021-08-06 15:19:07 261 1

原创 零钱兑换 II(Leetcode-518)-完全背包问题

题目原题连接:https://leetcode-cn.com/problems/coin-change-2/知识点动态规划(完全背包)思路完全背包在0-1背包基础上,删除了对于物品的限制类似的,我们设置一个状态数组dp[i],用于记录在金额i状态下的硬币组合数。那么,我们的状态转移方程就是:dp[i] = sum(dp[i-coin[1], dp[i-coin[2]], ..., dp[i-coin[n]]]),dp[0] = 1其中,dp[0]就是金额到0了,那么就是一种

2021-08-05 15:47:23 78

原创 一和零(Leetcode-474)-多维背包问题

题目原题连接:https://leetcode-cn.com/problems/largest-divisible-subset/知识点动态规划(多维背包)思路我们可以把它转换为背包问题:m和n作为容量,每一个字符串看作是物品,每个价值为1。那么,我们就可以把原问题转换为:在max(m)和max(n)情况下取得物品的最大价值。注意,字符串不能重复,因此我们还需要添加一个状态,去求得:前i个物品,在max(m)和max(n)情况下取得物品的最大价值。所以状态转移方程就可以得到:dp[

2021-08-05 11:30:26 247

原创 最大整除子集(Leetcode-368)-动态规划

题目原题连接:https://leetcode-cn.com/problems/largest-divisible-subset/知识点动态规划思路我们考虑如何从一个小的整除子集扩充成为更大的整除子集如果一个数i能被另一个数j整除,那么i也能被所有能整除j的数整除,这话有点绕,举个例子:对于数组 [2,4,7,8],如果4能被2整除,8能被4整除,那么8也能被2整除(显然是对的~)。这为我们提供了一个思路:对于第i个元素,我们初始化子集长度为1(只包含自己),我们遍历前i-1个元

2021-08-04 12:05:33 85

原创 丑数 II(Leetcode-264)-优先队列 &三指针法

题目原题连接:https://leetcode-cn.com/problems/all-paths-from-source-to-target/知识点优先队列三指针法思路优先队列法关键点在于某个丑数一定是在前面某个丑数*2|*3|*5上得到的,否则无法满足只包含质因数的条件第一次见到丑数就是在紫书上面看到的,当时讲解就是用的优先队列实现的,以例子来说:第一次:1(1被认为是丑数),后面的丑数必然是在1的基础上*2,*3,*5第二次:1|2,3,5,取2再*2,*3,*5第三

2021-08-02 11:17:29 95

原创 所有可能的路径(Leetcode-797)-回溯法 & 记忆化搜索

题目原题连接:https://leetcode-cn.com/problems/all-paths-from-source-to-target/知识点方法1:回溯法方法2:记忆化搜索思路回溯法首先对于题目是明确说明没有有向无环图的,因此我们不需要设置数组去记录经过的节点去避免进入环的情况,因此我们只需要递归访问当前节点访问它能到达的节点,直到终点结束,记录下结果。动态规划对于很多情况下的路只要走过一遍,那么我们可以路径记录下来,以[[3,1],[4,6,7,2,5],[4

2021-07-31 14:45:18 441

原创 计算各个位数不同的数字个数(Leetcode-357)-回溯法/动态规划

题目原题连接:https://leetcode-cn.com/problems/count-numbers-with-unique-digits/知识点动态规划(回溯超时 )思路对于回溯法,枚举每一个位,用一个数组vis记录访问过的数字即可。唯一需要注意的是,这道题允许001(就是1)这种情况的出现,n位以内都是允许的,回溯法代码当n==8会超时,仅供参考。动态规划思路(去计算不能满足条件的数目),首先给出状态转移方程再解释:对于长度为n的数不能满足条件的数目 = 长度为(n-1

2021-07-30 15:18:34 194

原创 24 点游戏(Leetcode-679)-回溯法

题目原题连接:https://leetcode-cn.com/problems/unique-binary-search-trees-ii/知识点递归分治记忆化搜索思路一开始做没有思路,想着怎么找状态去进行回溯,因为本身一棵树左右子树都是不固定的,不太好写对于二叉搜索树:左子树的元素一定小于根节点,右子树的元素一定大于根节点,这为我们提供了递归分治的条件,我们在一开始设置范围去表示树左右节点的范围(int left, int right)。接着我们在该范围通过for循环去设置根节点

2021-07-29 20:14:14 743

原创 不同的二叉搜索树 II(Leetcode-95)-递归分治&记忆化搜索

题目原题连接:https://leetcode-cn.com/problems/unique-binary-search-trees-ii/知识点递归分治记忆化搜索思路一开始做没有思路,想着怎么找状态去进行回溯,因为本身一棵树左右子树都是不固定的,不太好写对于二叉搜索树:左子树的元素一定小于根节点,右子树的元素一定大于根节点,这为我们提供了递归分治的条件,我们在一开始设置范围去表示树左右节点的范围(int left, int right)。接着我们在该范围通过for循环去设置根节点

2021-07-28 15:49:40 89

原创 我能赢吗(Leetcode-464)-回溯&记忆化搜索(博弈问题)

题目原题连接:https://leetcode-cn.com/problems/can-i-win/知识点DFS & 回溯博弈问题记忆化搜索思路首先读懂题意:两个人是共享的和,谁取数第一个满足要求(> desiredTotal),谁赢是否能稳赢:就是先手A出了某个数,那么后手B出了任何数都不能赢,如果后手有一种赢的方式,那么就不是稳赢假设两位玩家游戏时都表现最佳:不存在“不让对方/说没有发现可以赢”情况,即如果存在赢的方式,一定会选择该方式赢得游戏那么我

2021-07-26 15:50:11 130

原创 划分为k个相等的子集(Leetcode-698)-DFS&回溯

题目原题连接:https://leetcode-cn.com/problems/partition-to-k-equal-sum-subsets/知识点DFS回溯思路这道题一开始没有做出来,没有想到怎么很好的表示状态。因为每个子集的数量是不同的,然后组成所需要的某个和也是不知道的。后来看了一下题解,关键的一个点是子集要是和相等,那么这个和必然是所有数的平均值(总和/k),如果不是一个整数,那么这个数组必然不能满足划分为相等的k个子集一开始我用k来作为递归的的条件,每一层递归找到一个

2021-07-26 10:58:59 185

原创 大礼包(Leetcode-638)-记忆化搜索&DFS

题目原题连接:https://leetcode-cn.com/problems/shopping-offers/知识点记忆化搜索(DP)DFS思路我们把当前购买数量情况作为状态,那我们要求的就是满足题意下使得我们的价格最低,那么状态转移方程就是:当前状态的最小价格 = min((满足条件的情况n状态的最小价格)+ 情况n的价格))上述转移方程中的满足条件情况分两种:有special大礼包可以选择,即大礼包中的每一项数量都小于目前需要的数量(注意:是当前需要的数量,Line 9

2021-07-23 15:06:23 136

原创 矩阵中的最长递增路径(Leetcode-329)-记忆化搜索&DFS

题目原题连接:https://leetcode-cn.com/problems/longest-increasing-path-in-a-matrix/刷几道记忆化搜索练习一下~知识点记忆化搜索(DP)思路进行DFS,对于每一个元素,我们“上下左右”进行遍历,如果满足题意(递增),则向下搜索,当前节点的最大递增长度即上下左右元素的最大递增路径 + 1;如果上下左右都不满足题意,返回长度1即可(Line 11),递归结束。那么我们就可推出状态转移方程(不写其实也可以,记忆化搜索本质

2021-07-22 11:05:51 72

原创 单词拆分(Leetcode-139)-记忆化搜索&DFS

题目原题连接:https://leetcode-cn.com/problems/word-break/知识点记忆化搜索思路虽然是一个个单词,但本质可以看作是路径寻找问题,字符串s每个字符相当于一个路径节点,问是否能从以第一个字母为节点开始,找到最后一个字符结束的路径,如下为例子:输入: s = “applepenapple”, wordDict = [“apple”, “pen”]输出: true"apple"相当于0->4有一条路,8->12有一条路(单词可重复

2021-07-20 14:46:13 169

原创 填充每个节点的下一个右侧节点指针 II(Leetcode-117)- BFS &双向BFS

题目原题连接:https://leetcode-cn.com/problems/word-ladder/知识点广度优先搜索 & 双向BFS队列思路直接广度优先搜索虽然和字符串有关,本质其实就是最短路径问题。因此,使用BFS做肯定是没有问题的。简单思路:每一次把所有“到达”的单词放入队列中(符合“到达”的条件:单词只有一个字母不相等),每次看队头单词是否 endWord 相同,如果相同说明找到了“最段路径”。这里我使用了一个结构体记录状态,里面的step就是当前状态需要经过

2021-07-19 16:26:22 61

原创 填充每个节点的下一个右侧节点指针 II(Leetcode-117)- BFS

题目原题连接:https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node-ii/知识点广度优先搜索队列思路这道题和二叉树的层序遍历 II(Leetcode-107)有异曲同工之处,明白了那道题,这道就方便多了。简单来说,while循环一次遍历一层节点,for 循环逐个元素同一层元素逐个访问。因此,只需要用last记录”前驱“(这里的前驱是同一层的前面一个节点!) ,last->nex

2021-07-18 21:02:21 56

原创 二叉树的层序遍历 II(Leetcode-107)- BFS

题目原题连接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/知识点广度优先搜索队列思路题目意思:把一层的所有节点保存在一个vector中,最后逆序输出。逆序输出好办,自己写或者使用 reverse() 都比较容易,层序遍历用BFS一边即可,问题是如何确定同属于一层的节点,因为单单队列是无法判断出哪些节点为一层。解决思路:我们的一次 while() 循环作为输出二叉树的一层,每次循环开始前

2021-07-18 20:16:25 48

原创 子集(Leetcode-78)- 回溯法习题

题目原题连接:https://leetcode-cn.com/problems/subsets/知识点DFS回溯 + 剪枝思路这道题和组合(Leetcode-77)有些类似,可以进行节点参考这道题我首先进行了排序,为了保证每一个元素从小到大排列(为后续剪枝)。和Leetcode-77一样的思路去进行剪枝:每一次只去遍历大于当前元素的元素。例如 [1,2,3,4],对于2元素开始,只遍历:[2],[2,3],[2,3,4]对于3开始的元素,只遍历:[3],[3,4]这道

2021-07-17 11:51:53 59

原创 组合(Leetcode-77)- 回溯法习题

题目原题连接:https://leetcode-cn.com/problems/combinations/知识点DFS回溯 + 剪枝思路如果使用暴力递归,时间上是一定超时的(O(nn)),因此只能去回溯法+剪枝剪枝策略:其实就是去避免无效的重复,如 [1,2] 和 [2,1],我们只需要每次在枚举的时候不再取前面的元素即可避免上述的重复(代码中start_num表示下一个开始元素,Line 12 for (int i = start_num; i <= nums; i+

2021-07-17 11:08:07 79

原创 括号生成(Leetcode-22)- 回溯法习题

题目原题连接:https://leetcode-cn.com/problems/generate-parentheses看回溯法列表时候发现中间有个22没做,强迫症不能忍!!知识点DFS回溯法思路题目是括号生成,单单进行暴力枚举不满足的情况挺多的(虽然好在题目范围n只有1-8,也算能做)。我们思考一下回溯的剪枝条件,只有在左括号数量小于右括号数目的时候才有意义,不然的话生成的括号必然存在... ()) ...,不满足条件,所以对上述情况进行剪枝。总的来说:左括号在数量小

2021-07-16 16:52:56 108

原创 减小和重新排列数组后的最大元素(Leetcode-1846)- DFS

题目原题连接:https://leetcode-cn.com/problems/maximum-element-after-decreasing-and-rearranging知识点DFS思路首先读题发现两个之间的差不能大于1,数字只能变小而不能变大,求的是可能的序列中的最大值。要求可能的最大值,我们更希望的是 [ 1,2,3,4,5,…] 递增上去,这样子才能保证元素大。而因为数字只能变小,假如3的话只能是1-3,而10的话可以是1-9。因此,越大的数放在越后面,更有利于实现递增。综

2021-07-15 20:15:14 60

原创 扫雷游戏(Leetcode-529)- DFS

题目原题连接:https://leetcode-cn.com/problems/minesweeper/知识点DFS思路DFS常规题,读明白题目意思就好。条件1遍历到直接改为’X’,Game over! - Line 9-11条件2需要递归进行DFS搜索(Line 24-29),之所以样例中雷的上面一块没有从‘E‘->’1‘是因为周围一圈数字围起来了,而条件3所说,周围存在雷则修改为数字然后结束递归(Line 20-22),所以那个位置是是无法搜索到的。注意看周围有没有雷

2021-07-15 11:59:46 123

原创 蓝桥杯 2020B组 E-七段码(DFS+判重)

题目大意:知识点DFSMap判重思路总共状态不多,而且是选择题,直接用vector记录状态+map判重即可canuse记录可以选择的数字原本想用unordered_map和unordered_set,忘记vector没有对应哈希函数答案:80代码# include <iostream># include <vector># include <algorithm># include <set># include &lt

2021-04-16 10:25:08 102

原创 八数码问题(MAP判重 + BFS)

题目大意:在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。知识点BFSMap判重思路回溯法,归结为隐式图的遍历,它的任务是找到一条从初始状态到终止状态的最优路径,所以使用BFS。判重使用Map既可以判断当前状态是否已经出现过(出现过再走一

2021-03-17 16:34:43 316

原创 困难的串(Krypton Factor, UVa 129)- 回溯法习题

题目题目参考网址:https://vjudge.net/problem/UVA-129大意:如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的串”。例如,BB、ABCDACABCAB、ABCDABCD都是容易的串,而D、DC、ABDAB、CBABCBA都是困难的串。输入正整数n和L,输出由前L个字符组成的、字典序第k小的困难的串。例如,当L=3时,前7个困难的串分别为A、AB、ABA、ABAC、ABACA、ABACAB、ABACABA。输入保证答案不超过80个字

2021-03-14 14:19:05 286

原创 素数环(Prime ring Problem, Uva524)- 回溯法

题目题目参考网址:https://vjudge.net/problem/UVA-524大意:输入正整数,把整数1,2,3,···,n组成一个环,使得相邻两个整数之和均为素数。输出时从整数1开始逆时针排列。同一个环应恰好输出一次。n<=16知识点回溯法思路这道题由于n <= 16,使用全排列再判重,在n较大的情况下难以求解,因此使用回溯法。从1到n开始循环,如果未被使用则判断相邻(和前一个)之和是否为素数,如果是则放入,调用进入下一层,在调用返回后(当前情况下的所有情况都

2021-03-09 20:01:30 286

原创 Python实现双因素方法分析(Two-Way ANOVA)

导入包import numpy as npimport pandas as pdimport statsmodels.api as smfrom statsmodels.formula.api import ols导入数据#create datadf = pd.DataFrame({'water': np.repeat(['daily', 'weekly'], 15), 'sun': np.tile(np.repeat(['low', 'med', 'h

2021-03-09 18:36:15 2149 2

原创 Jupyter Lab 安装插件时nodejs版本仍然提示是老版本的问题 & 在powershell中启动没有插件的问题

问题描述:问题一我已经官网下载了最新版本的Nodejs,但在安装插件的时候总是报错说要安装>=12.0.0的插件问题二这两天从Jupyter notebook 转到Jupyter Lab安装kite代码补全,kernal也切换成了虚拟环境,但是在powershell中怎么也显示不了插件。原因分析:问题一的问题Anaconda使用的是虚拟环境安装的nodejs,与安装的最新版本的nodejs不同问题二的问题这是因为powershell没有切换到虚拟的conda环境,在N

2021-02-03 11:17:39 1320

原创 八皇后问题 - 回溯法的应用

题目大意:在国际象棋的棋盘上,按照国际象棋的规则,摆放8个皇后,使得不互相攻击,要求找出所有的解。皇后的攻击范围为同行同列和同对角线。知识点回溯法思路在解决这类问题时(是否合法/存在限制条件),我们可以在暴力求解使用递归时同时检查是否已经不满足要求,如果不满足要求则直接递归返回,减少搜索树的大小,就是我们的“回溯法”。在这道题目中,基于皇后的性质,我们必然不可能在一行中有多个皇后,因此我们每一层的遍历可以按照“逐行”或“逐列”搜索,即每一层递归确定一行或一列可以放置的皇后的位置,记录

2021-02-01 22:32:49 198

原创 除法(Devision, Uva725)-暴力求解简单枚举

题目题目参考网址:https://vjudge.net/problem/UVA-725大意:给一个数字n,用0~9,10个数字组成两个五位数,使得他们的商为n,按顺序输出所有结果 (可以有前导0)知识点暴力求解 - 简单枚举思路不需要abcde和fghij都进行枚举,只需要枚举一个,另一个相乘n即可得到,最后进行判重,如果没有重复(把串进行排序后,从头开始遍历检查是否递增0-1-2-3-…-9,如果没有递增说明出现重复)则说明满足条件进行输出。代码# include <ios

2021-01-31 22:45:27 203

原创 平衡的括号(Parentheses Balance, Uva673)- 栈的应用

题目参考网址:https://vjudge.net/problem/UVA-673大意:实现匹配“[”,“]”和“(”,“)”,判断输入是否合法。知识点栈的应用思路设置一个栈,输入的括号序列从尾开始匹配,若和栈顶括号匹配,则pop()出当前符号字符(第一个括号字符直接放入)。若不匹配,则将当前位置的括号也压入栈。直到括号序列遍历完毕,若栈中仍然有多的括号序列,则说明当前的括号序列不是合法输入序列。代码# include <iostream># include

2021-01-31 21:22:06 486 1

原创 巡逻机器人(Patrol Robot, Uva1600)

题目参考网址:https://vjudge.net/problem/UVA-1600大意:模拟机器人要从一个m*n(m和n的范围都在1到20的闭区间内)的网格的左上角(1,1)走到右下角(m,n)。网格中的一些格子是空地,用0表示,其它格子是障碍,用1表示。机器人每次可以往四个方向走一格,但不能连续地穿越k( [0,20] )个障碍,求最短路长度。起点和终点保证是空地。知识点BFS思路和基本的BFS类似,最大的不同的是可以跨越障碍物。基本的BFS见该篇博客:https://blog.c

2021-01-29 22:32:46 1396 3

原创 骑士的移动(Knight Moves, Uva439)- BFS模板题

题目参考网址:https://vjudge.net/problem/UVA-439大意:按照国际象棋????的移动规则,求????最小需要多少步从起点跳到终点。(老BFS模板题了~)知识点BFS求最短路径思路BFS模板题,输入转换为坐标r (row),c (column)行和列,使用队列的方式进行BFS,使用vis记录是否访问,使用dis记录距离(当然两个可以合并为一个来写)。每次pop出队首u检查是否是目的位置,是的话返回当前节点位置所记录下的dis。否则,向“四面八方”扩散出

2021-01-28 23:17:41 476

空空如也

空空如也

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

TA关注的人

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