自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 conda pip/cuda pytorch相关

cuda pytorch gpu版本查询以及对应关系

2022-02-23 19:25:40 275

转载 神经网络初始化

权重、偏差不能同时为0

2022-02-19 13:41:45 204

转载 【面试】最大连续子数组和问题

前缀和O(n^2)序列dp、扫描法O(n)参考链接

2022-02-16 15:39:10 191

原创 单调队列问题

单调队列经典问题:注意其中的push max pop操作,代码整体时间复杂度几乎为O(n)快速求滑动窗口内的最大值和最小值。常见的方法有:使用 multiset、TreeMap等数据结构;单调递增队列或者单调递减队列;以力扣1438题为例:滑动窗口结合数据结构题解:思路清晰,不同语言的有序数据结构都已给出滑动窗口结合单调队列题解:在可变长度滑动窗口内快速求最大值最小值...

2022-02-08 16:59:42 331

转载 最小生成树问题

Kruskal算法、Prim算法代码Kruskal算法、Prim算法动画演示Kruskal例题题解需要用到并查集判断是否两个节点处于同一生成树;需要用到最小堆(单调队列)存放所有边并查集操作包括:find(x,y) + union(x,y)等...

2022-02-08 10:43:45 103

原创 LeetCode-【最短路】接雨水II

这是一道Dijkstra算法经典变形题!!!题目描述题目分析参考题解代码同dj算法数据结构:boolean visited[] + 优先队列先把四个边加入优先队列,因为他们不能蓄水每个点蓄水量==四周路径高度的最小值(路径高度定义为从该点出发到某个边界点的路径的最大高度)入队(也叫松弛操作)即最优贪心:每次最小高度的点出队,此时他的邻接点的最小路径高度的路径方向是刚出队的点从四边界不断往图的中心收缩,也可以理解为入队的点一开始是边界后来是图中较中心点,也可以理解为图的边

2022-02-07 19:30:56 1446

转载 动态规划与贪心算法的理解

动态规划适用条件动态规划与贪心算法区别

2022-02-06 13:58:53 124

转载 最短路问题

SPFA、Dijkstra、Floyd选择以及代码实现

2022-02-05 20:44:41 115

转载 前缀和经典例题以及思路

前缀和思想:利用哈希表(字典)保存前缀累加和相关信息,利于后续实时处理哈希表保存余数以及第一次出现该余数的索引,同余则更新答案哈希表保存数值以及第一次出现该数值的索引,同数值则更新答案...

2022-02-04 20:42:28 205

转载 最大子序列和问题

子序列和无约束问题提供两种方法后者可变形为:其例题 arr = [0] cur = 0 for tmp in _sum: cur += tmp # 二分法 loc = bisect.bisect_left(arr, cur - k) if loc &lt

2022-02-04 19:05:31 100

原创 LeetCode-【总结】dp问题小结

dp分类dp问题大致分为:线性dp背包dp序列dp区间dp状压dp数位dp……背包dp参见:自己的背包dp总结序列dp经典问题:最长上升子序列、最长公共子序列参见:自己的LIS、LCS总结一般时间复杂度 O(nlogn) 或 O(n^2)例如,LCS中,dp[i][j] 一般定义为 两个序列或字符串中分别在第i、j个位置结尾的序列对应的 最长公共子序列长度难一点的问题会涉及到 找出该最长公共子序列区间dp一般dp[i][j]表示一个序列中s[i]~s[j]这个区间的答

2022-01-28 20:07:01 1688

转载 LeetCode-背包dp总结

背包问题分类学习资源力扣题解参考背包九讲1背包九讲2一般步骤状态定义状态转移初始化分析时空复杂度空间优化:省去物品这一维度,注意01背包倒序更新、完全背包顺序更新多重背包的优化:见背包九讲1注意事项:状态定义 f[j][k] 分为:价值恰好为k、价值至少为k、价值至多为k,代码不同之处体现在状态转移、初始化上参考例题:不同状态定义的解法(见提交代码备注)...

2022-01-25 18:12:51 214

转载 python参数传递

python传递的是对象深拷贝、浅拷贝、引用

2022-01-24 19:29:57 164

转载 神经网络调参步骤

需要调节的参数根据训练结果分类调参

2022-01-19 12:24:10 498

转载 Pytorch详解nn模块

全连接层:nn.Linear卷积层:nn.Conv2d池化层:nn.MaxPool2d批量归一化:nn.BatchNorm2dBN层理解

2022-01-18 21:06:16 337

转载 深度学习模model相关函数

model.compile()各种优化器简介Adam李宏毅-深度学习优化器讲解损失函数model.fit()官网model.fit()keras中的verbose

2022-01-15 16:19:50 270

转载 TensorFlow详解keras.layers

keras.layers.Conv2Dkeras.layers.MaxPool2D 上采样卷积、上采样、下采样图解全连接层:keras.layers.Densekeras.layers.Flatten

2022-01-15 15:46:32 563

原创 LeetCode-【拓扑排序】找到最终的安全状态

题目描述拓扑排序模板 q = [i for i in range(n) if inDeg[i]==0] while q: id = q.pop(0) for nid in rg[id]: inDeg[nid]-=1 if inDeg[nid]==0: q.append(nid)其中,inDeg是入度数组,rg是有向

2022-01-15 11:10:05 2219

原创 LeetCode-【图论BFS】打开转盘锁

题目描述图论BFS模板 if target == "0000": return 0 def get(status:str)->Generator[str, None, None]: s = list(status) for i in range(4): num = s[i] s[i] = num_pre

2022-01-09 16:51:36 337

原创 【Pytorch】模板(加载、训练、验证、测试)

目录加载训练验证测试加载加载数据、设备、损失函数、优化器训练训练轮次、回传误差验证验证模型、不算梯度、模型评价指标测试测试模型、预测输出

2021-12-24 16:12:14 1513

转载 最长上升子序列+最长公共子序列

最长上升子序列参考——时间复杂度:动态规划O(n^2)、贪心+二分O(n*log n)最长公共子序列参考——动态规划O(n*m)

2021-12-04 10:59:07 114

原创 LeetCode-【贪心】超级洗衣机

题目描述题目分析举个例子特殊情况python实现class Solution: def findMinMoves(self, machines: List[int]) -> int: n = len(machines) ave = sum(machines) if ave%n!=0:return -1 ave //= n # 平均数 nums = [num-ave for num in m

2021-12-03 22:09:01 5277

原创 LeetCode-【回溯】解数独

这是一道非常经典的回溯(暴力搜索)题目描述题目分析参考题解1参考题解2基本思想就是设立三个约束(行、列、九宫格),然后对于每一个空格进行1~9的试下棋,满足约束着可以继续递归,若搜索不到解,则回溯;搜索到了则进入快速通道(添加变量 valid 用作判断)优化一:使用set去重。去重是回溯问题经常结合的,难度也会上升,该方法其实形象的理解就是当我面对空格时,找出这个空格的备选项,知道可以填哪些数字,然后一一递归回溯,而基本思想是1~9都试一遍优化二:位运算。也很好理解,之前使用一个bo

2021-11-26 23:17:06 3426

原创 LeetCode-【回溯】数组总和

题目描述题目分析看到关键字 ” 所有 “—— 看来是要回溯了!这道题是求组合问题,第46题是排列问题,对于这两类问题:超赞的题解:推荐题解题解中的python代码可以作为模板之一,在对比题型中还给出了另一个正确模板和错误模板,非常 nicepython实现class Solution: def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]: def df

2021-11-26 22:58:46 2586

原创 LeetCode-【回溯】电话号码的字母组合

题目描述题目分析此题引出 ” 回溯 “的模板代码python实现class Solution: def letterCombinations(self, digits: str) -> List[str]: ''' # 队列 if not digits:return [] phone = ["abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"] queue

2021-11-26 21:49:49 2859

原创 LeetCode-【树的搜索】二叉搜索树迭代器

题目描述题目分析方法一:递归在__init()__中计算好(递归)中序遍历的序列,存入数组(空间复杂度O(n)),next()只需要遍历数组构造数组时间复杂度O(n),空间复杂度O(n);查询数组O(1)其中,n为树结点个数方法二:非递归根据非递归中序遍历模板,维护一个堆栈(空间复杂度O(h)),next()边输出下一个值(出栈)、边存储(入栈)时间复杂度O(1),空间复杂度O(h)其中,h为树的高度python实现class BSTIterator: '''

2021-11-22 16:38:43 624

转载 二叉树——前序、中序、后序 非递归遍历

参考:三种遍历思路图解 + C实现

2021-11-22 15:35:01 82

原创 LeetCode-【二分】存在重复元素 III

题目描述题目分析整体思路:遍历数组中维护一个数据结构(长度为K),查看当前元素是否与数据结构中元素满足 abs(nums[i]-nums[j]) <= t问题:遍历数组时间复杂度O(n),数据结构查询、插入等操作时间复杂度越小越好可以选择:有序列表+二分查找插入O(log(k)) 或者 桶排序O(1)以下介绍桶排序利用好数值差在 t 以内这一条件 —— —— 可以选择桶大小为 t + 1 使得同一个桶内一定满足条件也就是说同一个桶存在两个以上元素则可以直接返回 True

2021-11-21 23:17:24 855

原创 LeetCode-【双指针】K 个不同整数的子数组

题目描述题目分析这是一道很好的双指针题目传统的滑动窗口一般是利用左右指针,一个固定一个移动来求取连续最xx子数组之类的问题以下思路参考自:添加链接描述本题核心思路为:恰好由 K 个不同整数的子数组的个数 = 最多由 K 个不同整数的子数组的个数 - 最多由 K - 1 个不同整数的子数组的个数关键点:最多由K个不同整数构成的子数组的个数 可以利用滑动窗口解决滑动窗口动画见上述链接答案更新为:ans += right - left + 1这是因为从长度为L-1的子数组到长度

2021-11-18 13:23:13 1189

原创 LeetCode-【双指针】删除链表的倒数第 N 个结点

题目描述以下截图来自于 VSCode 的 LeetCode 插件:题目分析需要注意几点python不同于C语言,是一种按对象引用传递的语言,详细介绍见:https://robertheaton.com/2014/02/09/pythons-pass-by-object-reference-as-explained-by-philip-k-dick/只需扫描一遍,用ptr[]记录每个结点的引用,用内存换取时间python实现## @lc app=leetcode.cn id=19 l

2021-11-17 21:34:20 1113

原创 LeetCode-【模拟】环形数组是否存在循环

题目描述题目分析总共分两步:第一步:将nums[i]转换为i的父亲节点列表,此操作可以使得后续找到的环满足k>1的条件第二步:遍历每个元素,对每个元素深度搜索,直到找到根节点或者环几点说明:环分为有效环和无效环,环在nums[i]的原始值同号则为有效环为了避免对每个元素深度搜索,可以记录深度搜索的路径,同一路径上所有元素深度搜索的结果都相同,因此无需深度搜索同一路径上其他元素一个元素深度遍历后没找到有效路径,则把整个路径的元素nums[i]都设置为-1,无需再次遍历需要用

2021-11-15 14:41:02 1278

原创 LeetCode-【模拟】原子的数量

题目描述题目分析逐个字符读取,总共分为三类字符:括号、数值、原子(字母)使用数据结构:双端队列(deque,用作栈)、字典(defaultdict)python实现class Solution(object): def countOfAtoms(self, formula): """ :type formula: str :rtype: str """ # 双端队列,作为栈 d = deq

2021-11-13 13:12:18 1098

原创 LeetCode-【模拟】数字1的个数

题目描述题目分析由于n取值过大,使用0~n的遍历会很慢但是我们发现,n的位数只有9位!!!那么是否可以按照位数遍历,求每一位字符可以取值为1的次数,然后把所有位对应的次数叠加,问题就迎刃而解了那么每一位次数如何去求?可以按照当前字符,把字符串切开为前后两段,把前后两段取值种数相乘即可。针对几个特殊情况:110 13我们可以把当前字符分为是否大于1,等于1还是小于1,分情况讨论:如果大于1,如3120中的2,则前乘因子为32,后乘因子为10(因为可以取0~9)如果等于1,如果首字符如1

2021-10-29 11:02:38 1123

原创 LeetCode-【模拟】文本左右对齐

题目描述测试用例题目分析最后一行与前几行不一样:前几行空格均匀分配;最后一行空格一个单词最多后面紧接着一个空格可遍历一遍整个words,记录子串的左右边界单词,遍历到当前单词时分三种情况:加入当前单词后,子串尚未充满;子串刚好充满;子串过长如果子串尚未充满,则更新右边界如果子串刚好充满,构建当前完整子串如果子串过长,构建当前完整子串,并把当前单词加入下一个子串“构建子串”这个子函数,只需要把空格均分,从左往右多余的每两个单词之间最多加一个,额外空格用完为止“构建最后子串”这个子函数,

2021-10-27 20:48:08 304

原创 LeetCode-【模拟】有效数字

整体思路整个思路如下图:python实现class Solution(object): def isNumber(self, s): """ :type s: str :rtype: bool """ if s.find('e') != -1: s1 = s[0:s.find('e')] s2 = s[s.find('e')+1:] #先处理

2021-10-25 20:19:38 564

空空如也

空空如也

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

TA关注的人

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