自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

贾维斯的小屋

手工智能小作坊,欢迎访问另一个小作坊:https://lixudong.ink

  • 博客(12)
  • 资源 (8)
  • 收藏
  • 关注

原创 数据结构与算法——二叉树的题目

一、二叉搜索树的最近公共祖先此题为leetcode第235题思路:因为此题的前提是二叉搜索树,有个很好的性质即根节点的左子树的值都小于根节点,右子树的值都大于根节点。因此给定两个值p和q,如果p和q都小于根节点的话说明他们一定在左子树,继续在左子树寻找,对于右子树也是如此;如果p和q有一个小于等于根节点而另一个大于等于根节点,说明当前根节点便是最近公共祖先。class Solution: def lowestCommonAncestor(self, root: 'TreeNode', p: '

2020-06-28 21:27:18 478

原创 数据结构与算法——动态规划系列题目

一、最长回文子串此题为leetcode第5题思路:此题的“中心扩展法”在前面已经讲过,这里解释动态规划解法。设状态dp[i][j]的含义是在区间[i, j]的字符串是否为回文串。如果[i+1, j-1]区间内已经是回文串了,那么只要s[i] == s[j]那么[i, j]区间的字符串便是回文串。另外要主要内外循环的次序。一般是先循环i再循环j,但在这里会导致参考的状态还没有被计算出来。比如当下计算dp[i][j],会用到dp[i+1][j-1],由于先循环的i所以这个状态还没有被计算出来。因此要先循环j

2020-06-27 11:07:58 443

原创 数据结构与算法——高智商犯罪之打家劫舍

题目以偷东西为背景,但偷东西肯定是违法的,我们千万不能用动态规划去偷东西,用什么算法都不可以,程序员虽然苦逼但这是正当行业,哪怕去摆地摊啊,让我们一起抵制偷窃,共建社会主义和谐社会一、打家劫舍此题为leetcode第198题思路:设状态dp[i]的含义是到第i家时所偷窃到的最高金额。如果偷窃第i家,那么第i – 1家肯定没有被偷窃,偷窃的金额只能是第i-2家加上第i家的。如果不偷窃第i家,那么第i-1家肯定被偷窃了,当前偷窃的金额就是第i-1家。状态转移方程为:dp[i]=max(dp[i−2]+n

2020-06-26 16:15:33 383

原创 数据结构与算法——经典背包问题

一、0-1背包问题https://www.acwing.com/problem/content/description/2/思路:设状态dp[i][j]的含义是装入前i件物品装入容量为j的背包里时的最大总价值,那么状态转移方程为:因为dp[i][j]只和dp[i-1][j]有关,所以状态可以转为一维的。在遍历j的时候,要逆序遍历,因为要保证较小的j是上一轮的状态:比如i = 3, j = 8, v[3] = 5, w[3] = 1,一维的转移方程为dp[8] = max(dp[8],dp[3]

2020-06-25 16:45:23 996

原创 数据结构与算法——令人烦恼的括号

一、有效的括号此题在《数据结构与算法——栈与队列》中出现二、括号生成此题在《数据结构与算法——广度优先与深度优先搜索》中出现三、最长有效括号此题为leetcode第32题思路:考虑使用动态规划,定义状态dp[i]为以第i个元素结尾的最长有效括号的长度。有效的括号一定是以“)”结尾的,因此我们只需考察以“)”的字符,状态转移方程如下图所示。注意dp的边界条件,图中并没有体现出来。class Solution: def longestValidParentheses(self, s: s

2020-06-21 01:32:34 392

原创 数据结构与算法——数学相关

一、整数反转此题为leetcode第7题思路:基本思路就是,初始化y = 0,进入while循环,令y = y * 10 + x % 10,并且x = // 10,当x != 0的时候继续循环,最后返回y。这里需要注意几点:(1)x是有符号整数,取余的时候要对x的绝对值取余,否则负数取余会有问题;(2)此题有范围限制,循环的时候需要判断一下y的范围;(3)当x是负数的时候,返回的y注意也加上负号class Solution: def reverse(self, x: int) -> in

2020-06-19 19:20:07 470

原创 数据结构与算法——其他关于字符串的题目

一、二、三、二进制求和此题为leetcode第67题思路:由于a、b字符串长度不一定相等,因此可以右对齐然后前面填0使两者对其,使用字符串的zfill()方法。然后从后面依次遍历,设置一个初始为0的carry标志位,如果字符为’1’,那么carry+1。如果carry为2或0,那么当前位变为0;如果carry为1或3,那么当前位边为1。当然还有进位需要考虑,carry为2或3时需要进1位,carry为0或1时不需要进位,那么carry变为carry // 2即可。class Solution:

2020-06-17 18:48:32 408

原创 数据结构与算法——字符串的中心扩展

一、最长回文子串此题为leetcode第5题思路:根据回文字符串的特点,如果以字符a为中心,各向两边扩散一个字符,这两个字符一样的话这个子串一定是回文子串,并且可以继续扩散;若扩散的两个字符不一样,那么这个子串一定不是回文子串,并且无法继续扩散。中心扩散的另一种形式是以一个空字符为中心向两边扩散,扩散的条件和上面的一样。所以我们需要定义一个check函数,传入开始扩散的左右起始点,一步一步向两边扩散,直到组不成回文子串位置,返回这个子串的长度。class Solution: # 扩展中心

2020-06-15 19:29:23 400

原创 数据结构与算法——日取其半之二分查找

一、搜索选择排序数组此题为leetcode第33题思路:和常规的二分法套路差不多,定义左右指针left和right,求得中间值mid,此时有一半数组肯定是有序的,如下图所示。如果nums[left] < nums[mid],那就是[left, mid]有序,如果nums[left] <= target < nums[mid],那么就在左半边找,否则在右半边找。如果有nums[mid] < nums[right],那就是[mid, right]有序,如果nums[mid] <

2020-06-14 18:34:28 312

原创 数据结构与算法——小小数组也不简单

一、下个排列此题为leetcode第31题思路:如果希望下个数比现在的大,那么可以将后面的某个大数与前面的某个小数交换,就可以得到一个比现在大的数。并且由于是字典序中的下个数,那么这两个数的增幅还要最小。比如123564,我们将5和6交换得到123654,但它不是字典序中的下个更大的排列,5和4交换后的123645才是。因此我们可以从数组的最后开始遍历,如果是升序的话就一直往前走。如果遇到非升序的数nums[i],那么从这个升序序列的开头开始遍历,找到第一个比nums[i]小的数nums[j],交换这两

2020-06-13 17:17:58 335

原创 数据结构与算法——小小链表不简单

一、两数相加此题为leetcode第2题思路:链表的头结点是个位,依次往后是十位、百位等,在每位的数相加时可能有进位,我们要预先有个进位flag=0,后续可能为0也可能为1,每次相加时都要加上这个进位。加完后的数可能大于10,如果大于10则flag=1,否则flag=0。然后这个数取余便是这位相加后的结果。同时以此遍历两个链表,一个到结尾时另一个继续遍历。class Solution: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -&

2020-06-11 17:59:08 325

原创 leetcode高频题——双指针

一、盛最多水的容器此题为leetcode第11题思路:用两个指针指向数组的头尾,以上面的1、7为例,此时水的容量为min(1, 7) * 8=8。然后考虑移动指针,因为水的容量是由最小的那个数决定的,所以应该移动数小的那个指针,这样后面才有机会得到一个大数,使得水的容量变大。class Solution: def maxArea(self, height: List[int]) -> int: if len(height) < 2: retu

2020-06-09 23:32:08 276

workshop_of_NAS_ICLR2020.rar

ICLR 2020 线上会议已经圆满结束。此次会议关于NAS的研究主题包括对benchmark的探讨、对于流行的NAS方法的理解和分析,以及如何提高NAS方法的精度和效率等。值得一提的是,此届会议举办了ICLR历史上的第一个神经网络架构搜索(NAS)的Workshop(https://sites.google.com/view/nas2020/home),充分体现出NAS正成为越来越热门的神经网络研究方向。

2020-05-19

十大排序算法.ipynb

冒泡排序、插入排序、选择排序、快速排序、堆排序、归并排序、希尔排序、计数排序、桶排序、基数排序,python实现

2020-04-10

汉口长江每月流量数据

该数据记录了从1865年1月到1978年12月在汉口记录的长江每月流量,共计1368个数据点,计量单位未知。

2017-12-14

deeplearning.ai第二门课——权重初始化

deeplearning.ai第二门课《提升深层神经网络》,权重初始化部分的编程作业,包括一个py文件,数据文件和一个jupyter-notebook

2017-10-11

deeplearning.ai

deeplearning.ai第二门课《提升深层神经网络》,正则化部分的编程作业,包括一个py文件,数据文件和一个jupyter-notebook

2017-10-10

mnist手写识别代码

mnist手写识别代码

2017-02-17

Deep Learning Tutorial李宏毅ppt

2017-02-17

数字滤波C语言

递推平均数字滤波,C语言实现,可输出文本文档

2015-12-06

空空如也

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

TA关注的人

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