自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 动手深度学习-笔记2

小白知识点 训练误差和泛化误差 训练误差:模型在训练数据集上表现出的误差 泛化误差:模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似。 验证数据集、测试数据集和训练数据集三者的功能 训练集:模型训练的过程其实就是在求参数,我们通过训练集来分别对模型进...

2020-02-19 20:44:08

阅读数 11

评论数 0

原创 动手深度学习-笔记1

知识点 损失函数中的解分为两类: 解析解:误差最小化问题的解可以直接用公式表达出来 数值解:通过优化算法有限次迭代模型参数来尽可能降低损失函数的值 优化函数的两个步骤: 初始化模型参数,一般来说使用随机初始化。 我们在数据上迭代多次,通过在负梯度方向移动参数来更新每个参数. 两个向量相加的...

2020-02-14 20:22:00

阅读数 22

评论数 0

原创 20. 有效的括号(Valid Parentheses)

20. 有效的括号(Valid Parentheses)题解栈复杂度分析PythonJava(待完成) 题解 有效的括号问题,一般使用栈来解决,若出现一个右括号,判断栈顶的是否为相匹配的左括号,是则出栈,否则入栈。遇到左括号就入栈。显然,有效的括号一定保证最终栈为空,若出现一个右括号,栈已空,则一...

2019-12-27 13:49:36

阅读数 9

评论数 0

原创 17. 电话号码的字母组合(Letter Combinations of a Phone Number)

17. 电话号码的字母组合(Letter Combinations of a Phone Number)题解回溯复杂度分析PythonJava(待完成) 题解 第一时间想到回溯,因为这种找全部的解,常规都是使用回溯 回溯 初始化词典phone={"2":["a&q...

2019-12-26 23:25:15

阅读数 9

评论数 0

原创 14. 最长公共前缀(Longest Common Prefix)

14. 最长公共前缀(Longest Common Prefix)题解水平扫描复杂度分析PythonJava(待完成)Pythonic的解法复杂度分析PythonJava(待完成) 题解 水平扫描 想法: 取字符串数组中的第一个字符串为resresres,逐个和剩下的字符串比较并更新resresr...

2019-12-26 22:27:15

阅读数 4

评论数 0

原创 13. 罗马数字转整数(Roman to Integer)

13. 罗马数字转整数(Roman to Integer)题解一次遍历复杂度分析PythonJava(待完成) 题解 借助哈希表保存所有的罗马字符,包括’I’:1, ‘IV’:4, ‘V’:5, ‘IX’:9, ‘X’:10, ‘XL’:40, ‘L’:50, ‘XC’:90, ‘C’:100, ...

2019-12-26 21:42:14

阅读数 16

评论数 0

原创 12. 整数转罗马数字(Integer to Roman)

12. 整数转罗马数字(Integer to Roman)题解贪心算法复杂度分析PythonJava(待完成) 题解 显然的想法,和凑零钱的问题一样,每次选择最大的,可以保证用的罗马字符最少且最终的组合唯一。 贪心算法 初始化词典numtochar={1:"I",⋯ ,10...

2019-12-26 20:19:29

阅读数 9

评论数 0

原创 6. Z 字形变换(ZigZag Conversion)

6. Z 字形变换(ZigZag Conversion)题解标志转向复杂度分析PythonJava(待完成) 题解 标志转向 特判,若行数numRows<2numRows<2numRows<2,返回sss 初试化res=["",⋯ ,"&qu...

2019-12-25 22:10:52

阅读数 11

评论数 0

原创 3. 无重复字符的最长子串(Longest Substring Without Repeating Characters)

3. 无重复字符的最长子串(Longest Substring Without Repeating Characters)题解滑动窗口复杂度分析PythonJava(待完成) 题解 滑动窗口 初始化集合memomemomemo保存当前无重复字符的子串 初始化结果max_len=0max\_...

2019-12-25 20:29:05

阅读数 16

评论数 0

原创 416. 分割等和子集(Partition Equal Subset Sum)

416. 分割等和子集(Partition Equal Subset Sum)题解动态规划复杂度分析PythonJava(待完成) 题解 本题的难点,将其转化为0−10-10−1背包问题。 动态规划 由二进制的两条性质得到递推公式: dp[i]={dp[i−1]+1i为奇数dp[i//2...

2019-12-17 14:26:24

阅读数 5

评论数 0

原创 338. 比特位计数(Counting Bits)

338. 比特位计数(Counting Bits)题解动态规划复杂度分析PythonJava(待完成) 题解 本题主要考察二进制的自身特性。 二进制的两个特性: 奇数的二进制中1的个数=它上一位偶数的二进制中1的个数+1 如:(3)10=(11)2,(2)10=(10)2(3)_{10}=(11...

2019-12-17 10:36:11

阅读数 8

评论数 0

原创 322. 零钱兑换(Coin Change)

322. 零钱兑换(Coin Change)题解记忆化回溯(自顶向下)复杂度分析PythonJava(待完成)动态规划(自下而上)复杂度分析PythonJava(待完成) 题解 记忆化回溯(自顶向下) 如上图,在回溯过程中,将中间结果保存下来,这样可将复杂度降低到O(n)O(n)O(n)。 ...

2019-12-16 16:54:42

阅读数 6

评论数 0

原创 304. 二维区域和检索 - 矩阵不可变(Range Sum Query 2D - Immutable)

303. 区域和检索 - 数组不可变(Range Sum Query - Immutable)题解缓存+动态规划复杂度分析PythonJava(待完成) 题解 缓存+动态规划 同样借助于缓存的思想: 如图所示: 若求蓝色区域内的元素和,等于蓝色区域右下角到(0,0)(0,0)(0,0)处...

2019-12-13 15:00:56

阅读数 11

评论数 0

原创 303. 区域和检索 - 数组不可变(Range Sum Query - Immutable)

303. 区域和检索 - 数组不可变(Range Sum Query - Immutable)题解缓存+动态规划复杂度分析PythonJava(待完成) 题解 每次调用函数计算一次都需要O(n)O(n)O(n)复杂度,因此借助缓存来保存区域和。 若使用二维dpdpdp,dp[i][j]dp[i][...

2019-12-13 14:30:19

阅读数 8

评论数 0

原创 300. 最长上升子序列(Longest Increasing Subsequence)

300. 最长上升子序列(Longest Increasing Subsequence)题解动态规划复杂度分析PythonJava(待完成)动态规划+二分查找复杂度分析PythonJava(待完成) 题解 动态规划 dp[i]dp[i]dp[i]表示到当前位置的最长上升子序列的长度。 ...

2019-12-12 22:03:17

阅读数 7

评论数 0

原创 279. 完全平方数(Perfect Squares)

279. 完全平方数(Perfect Squares)题解动态规划复杂度分析PythonJava(待完成)动态规划+空间优化复杂度分析PythonJava(待完成) 题解 动态规划 dp[i]dp[i]dp[i]表示iii最少可以由几个平方数构成。 初试化dp=[0,1,2,⋯ ,n]...

2019-12-12 14:25:00

阅读数 9

评论数 0

原创 221. 最大正方形(Maximal Square)

221. 最大正方形(Maximal Square)题解动态规划复杂度分析PythonJava(待完成)动态规划+空间优化复杂度分析PythonJava(待完成) 题解 动态规划 dp[i][j]dp[i][j]dp[i][j]表示以第iii行,第jjj列处为右下角的最大正方形的边长。 仅当该位置...

2019-12-08 15:05:17

阅读数 9

评论数 0

原创 198. 打家劫舍(House Robber)

198. 打家劫舍(House Robber)题解动态规划复杂度分析PythonJava(待完成) 题解 动态规划 dp[i]dp[i]dp[i]表示到第iii个房屋的偷窃最高金额。 显然,递推公式为:dp[i]=max(dp[i−2]+nums[i−1],dp[i−1])dp[i]=max(dp...

2019-12-07 19:35:59

阅读数 7

评论数 0

原创 174. 地下城游戏(Dungeon Game)

174. 地下城游戏(Dungeon Game)题解动态规划复杂度分析PythonJava(待完成) 题解 动态规划 dp[i][j]dp[i][j]dp[i][j]表示到达房间dungeon[i][j]dungeon[i][j]dungeon[i][j]所需的最小生命值。 若从左上角递推到右下...

2019-12-07 17:32:07

阅读数 16

评论数 0

原创 152. 乘积最大子序列(Maximum Product Subarray)

152. 乘积最大子序列(Maximum Product Subarray)题解动态规划复杂度分析PythonJava(待完成) 题解 动态规划 因为有负数的存在,我们保存当前位置的最大乘积,和最小乘积,因为负数可以将最大乘积变最小,将最小变最大。 初试化结果max_res=MINmax\_r...

2019-12-07 15:21:14

阅读数 17

评论数 0

原创 139. 单词拆分(Word Break)

139. 单词拆分(Word Break)题解动态规划复杂度分析PythonJava(待完成)记忆化回溯复杂度分析PythonJava(待完成) 题解 动态规划 初始化dp=[False,⋯ ,False]dp=[False,\cdots,False]dp=[False,⋯,False],长...

2019-12-06 14:39:42

阅读数 14

评论数 0

原创 132. 分割回文串 II(Palindrome Partitioning II)

132. 分割回文串 II(Palindrome Partitioning II)题解动态规划复杂度分析PythonJava(待完成)记忆化回溯复杂度分析PythonJava(待完成) 题解 动态规划 初始化最小分割次数数组min_cut={0,1,2,⋯ ,n−1}min\_cut=\{0,...

2019-12-03 23:05:04

阅读数 21

评论数 0

原创 115. 不同的子序列(Distinct Subsequences)

115. 不同的子序列(Distinct Subsequences)题解动态规划复杂度分析PythonJava(待完成) 题解 动态规划 我们使用dp[i][j]dp[i][j]dp[i][j]表示SSS的前jjj个字符有几种方式构成TTT的前iii个字符。在SSS和TTT前插入空字符,便于计算...

2019-11-29 15:04:32

阅读数 17

评论数 1

原创 97. 交错字符串(Interleaving String)

97. 交错字符串(Interleaving String)题解动态规划复杂度分析PythonJava(待完成) 题解 动态规划 我们使用dp[i][j]dp[i][j]dp[i][j]表示s1s_{1}s1​的前iii个字符和s2s_{2}s2​的前jjj个字符是否能构成s3s_{3}s3​的...

2019-11-28 22:22:31

阅读数 12

评论数 0

原创 96. 不同的二叉搜索树(Unique Binary Search Trees)

96. 不同的二叉搜索树(Unique Binary Search Trees)题解动态规划复杂度分析PythonJava(待完成) 题解 典型的卡特兰数问题,可使用动态规划来解决。 设nnn个结点的二叉搜索树的种类为G(n)G(n)G(n),f(i)f(i)f(i)表示以iii为根节点的二叉搜索...

2019-11-28 11:33:07

阅读数 17

评论数 0

原创 95. 不同的二叉搜索树 II(Unique Binary Search Trees II)

95. 不同的二叉搜索树 II(Unique Binary Search Trees II)题解递归复杂度分析PythonJava(待完成) 题解 卡特兰数问题 递归 二叉排序树的重要性质是,左子树上的节点值一定小于根节点,右子树上的节点值一定大于根节点。由此,可知若根节点为iii,则左子树的节点...

2019-11-28 00:21:57

阅读数 11

评论数 0

原创 91. 解码方法(Decode Ways)

91. 解码方法(Decode Ways)题解动态规划复杂度分析PythonJava(待完成)空间优化复杂度分析PythonJava(待完成) 题解 注意这几种情况,是无法解码的: 以0开头,如:“0123”,“000” 0前的数字大于2,如:“215021”。0前数字小于等于2时,是可以解码的...

2019-11-27 20:04:15

阅读数 13

评论数 0

原创 机器学习算法之k近邻模型算法原理及实现

机器学习算法之k近邻模型算法原理及实现1 算法原理1.1 kkk近邻算法1.2 kkk近邻模型1.2.1 模型1.2.2 距离度量1.2.3 kkk值的选择1.2.4 分类决策规则1.2.5 kkk近邻算法的实现:kdkdkd树1.3总结2 算法实现 1 算法原理 1.1 kkk近邻算法 算...

2019-11-27 11:55:20

阅读数 10

评论数 0

原创 机器学习算法之感知机模型算法原理及实现

机器学习算法之感知机模型算法原理及实现1 算法原理1.1 感知机模型1.2 感知机学习策略1.2.1 损失函数1.2.2 损失函数推导1.3 感知机学习算法1.3.1 感知机学习算法的原始形式1.3.2 感知机学习算法的对偶形式1.3.3两种形式的对比1.4 随机梯度下降1.5 算法收敛性1.5....

2019-11-26 13:04:02

阅读数 31

评论数 0

原创 72. 编辑距离(Edit Distance)

72. 编辑距离(Edit Distance)题解动态规划复杂度分析PythonJava(待完成) 题解 动态规划 初试化dpdpdp,为(n1+1)∗(n2+1)(n1+1)*(n2+1)(n1+1)∗(n2+1)的全零矩阵,n1n1n1为word1word1word1的长度,n1n1n1...

2019-11-25 10:38:39

阅读数 8

评论数 0

原创 70. 爬楼梯(Climbing Stairs)

70. 爬楼梯(Climbing Stairs)题解动态规划复杂度分析PythonJava(待完成)公式复杂度分析PythonJava(待完成) 题解 典型的斐波那契数列问题,可使用递归算法,复杂度太高,这里不做介绍。 仅介绍动态规划和公式法 动态规划 初试化dp=[0,...,0]dp=[0...

2019-11-24 22:20:22

阅读数 6

评论数 0

原创 32. 最长有效括号(Longest Valid Parentheses)

32. 最长有效括号(Longest Valid Parentheses)题解栈+排序复杂度分析PythonJava(待完成)栈 优化(不排序)复杂度分析PythonJava(待完成)动态规划复杂度分析PythonJava(待完成) 题解 栈+排序 括号匹配,第一时间想到用栈进行匹配,保存下可以匹...

2019-11-24 21:09:30

阅读数 14

评论数 0

原创 10. 正则表达式匹配(Regular Expression Matching)

10. 正则表达式匹配(Regular Expression Matching)题解递归复杂度分析PythonJava(待完成)动态规划法复杂度分析PythonJava(待完成) 题解 递归 递归函数isMatch(s,p)isMatch(s,p)isMatch(s,p),sss表示待匹配字...

2019-11-23 22:06:18

阅读数 12

评论数 0

原创 5. 最长回文子串(Longest Palindromic Substring)

5. 最长回文子串(Longest Palindromic Substring)题解动态规划复杂度分析PythonJava(待完成)中心拓展法复杂度分析PythonJava(待完成) 题解 动态规划 特判,当sss的长度为111或者000时,返回sss。 初试化最长回文子串...

2019-11-21 20:02:04

阅读数 9

评论数 0

原创 581. 最短无序连续子数组(Shortest Unsorted Continuous Subarray)

581. 最短无序连续子数组(Shortest Unsorted Continuous Subarray)题解两次遍历复杂度分析PythonJava(待完成)排序比对复杂度分析PythonJava(待完成) 题解 两次遍历 第一次简历: 从前向后遍历,使用max_nummax\_nummax_nu...

2019-11-19 15:38:43

阅读数 21

评论数 0

原创 560. 和为K的子数组(Subarray Sum Equals K)

560. 和为K的子数组(Subarray Sum Equals K)题解哈希复杂度分析PythonJava(待完成) 题解 借助哈希表保存累加和sumsumsum及出现的次数。若累加和sum−ksum-ksum−k在哈希表中存在,则说明存在连续序列使得和为kkk。则之前的累加和中,sum−ksu...

2019-11-19 12:25:52

阅读数 9

评论数 0

原创 448. 找到所有数组中消失的数字(Find All Numbers Disappeared in an Array)

448. 找到所有数组中消失的数字(Find All Numbers Disappeared in an Array)题解鸽巢思想复杂度分析PythonJava(待完成)鸽巢思想的另一种方式复杂度分析PythonJava(待完成) 题解 第一时间想到一个萝卜一个坑,鸽巢思想。 鸽巢思想 对于题目中...

2019-11-18 17:47:29

阅读数 20

评论数 0

原创 287. 寻找重复数(Find the Duplicate Number)

题解 本题的难点在于: 不能更改原数组 只能使用O(1)O(1)O(1)的额外空间 二分法 按题目表达,设数组长度为nnn,则数组中元素∈[1,n−1]\in[1,n-1]∈[1,n−1],且只有一个重复元素。一个直观的想法,设一个数字k∈[1,n−1]k\in[1,n-1]k∈...

2019-11-18 15:51:11

阅读数 10

评论数 0

原创 238. 除自身以外数组的乘积(Product of Array Except Self)

238. 除自身以外数组的乘积(Product of Array Except Self)题解左积和右积复杂度分析PythonJava(待完成) 题解 使用左边乘积和右边乘积进行计算。 左积和右积 初始化数组长度nnn。初始化res=[0,0,...,0]res=[0,0,...,0]res=...

2019-11-17 12:52:04

阅读数 13

评论数 0

原创 228. 汇总区间(Summary Ranges)

228. 汇总区间(Summary Ranges)题解三指针复杂度分析PythonJava(待完成) 题解 三指针 特判,若数组长度为1,返回str(nums[0])str(nums[0])str(nums[0]) 初始化左右指针l=0,r=0l=0,r=0l=0,r=0和当前访问指针cu...

2019-11-17 00:25:54

阅读数 7

评论数 0

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