LeetCode 322.零钱兑换

这道零钱兑换的题目很有意思,给定总金额和不同面额的硬币,需要找到硬币凑成金额的最少硬币数,题目如下所示: 如何来解决这个问题呢?首先拿到这个题目,很多人会想到的是贪心算法,首先选取面值最大的硬币,然后依次选取面值较小的硬币,这种解法看似可行,其实还是有不可行的地方,我们举个例子:coins=[1...

2019-04-29 14:26:02

阅读数 29

评论数 0

LeetCode 300.最长上升子序列

这道题目就是在一个数组中找到最长的上升子序列,且元素之间不必相邻,题目如下所示: 除了暴力解法,我们最优的解法还是用动态规划DP的方法来解答这个问题,那么解答的流程是怎么样的呢?我们来看下面这个流程图: 首先有一组 [10,9,2,5,3,7,101,18,21][10,9,2,5,3,7,1...

2019-04-29 11:37:31

阅读数 24

评论数 0

LeetCode 152.乘积最大子序列

这道题目是给定一个整数数组,返回乘积最大的连续子序列,题目如下所示: 拿到题目我们肯定会想到的是暴力解法,通过两层循环遍历数组中所有的元素,记录每一次循环之后的全局乘积最小值,直到循环结束,我们就可以得到乘积最大的连续子序列,显然这样的解法时间复杂度达到了 O(n2)O(n^2)O(n2)。 除...

2019-04-27 10:59:43

阅读数 49

评论数 0

LeetCode 120.三角形最小路径和

这道题目是给定一个三角形的数组,找到自顶向下的的一条路径,使得路径上的元素之和最小,首先我们来看一下这道题的题目: 首先我们拿到这个题目,我们会想到递归的方法,因为我们每次向下只能选择相邻的元素,那么我们递归的方程可以写成: triangle(i,j){ triangle(i, j + 1);...

2019-04-26 17:24:39

阅读数 31

评论数 0

LeetCode 70.爬楼梯

这是一道比较简单而且很典型的动态规划算法的题目,首先我们来看看题目: 拿到这个题目我们就可以想到动态规划的思想,首先我们来倒着推导,我们要达到第 nnn 阶台阶,必须是从第 n−1n-1n−1 或者 n−2n-2n−2 阶台阶上来的,那么我们假设第 nnn 阶台阶的走法有 f(n)f(n)f(n...

2019-04-26 15:55:31

阅读数 10

评论数 0

Batch Normalization的理解

首先在神经网络中,每一层网络结构都会有一个激活函数,以我们比较常见的sigmoid函数为例,我们可以看看sigmoid激活函数的图像如图所示: 我们试想一下,如果这个时候某个神经元的输入为4,那么经过sigmoid函数之后,这个神经元的输出是y=0.982y=0.982y=0.982,如果神经元...

2019-04-25 15:09:35

阅读数 31

评论数 0

LeetCode 51 & 52.N皇后

N皇后问题是算法中很经典的一个问题,将 nnn 个皇后同时摆放在棋盘中,且互相不能攻击,问有多少种不同的解法。首先我们来看看题目: 从题面上看来,这道题目似乎很难入手,我们唯一的入手点就是皇后的特性,皇后就是可以攻击自己所在的行、列、左斜边和右斜边上所有的点。所以一个皇后摆放之后,就要排除这个皇...

2019-04-09 10:03:40

阅读数 18

评论数 0

LeetCode 22. 括号生成

这道题目目的是给定一个 nnn ,表示括号的对数,生成所有有效括号的组合输出,题目如下所示: 首先拿到这个题目似乎无从下手,因为这是一个排列组合的问题,我们必须从中找到规律,我们可以发现右括号出现的前提是: 右括号的左边必须有左括号 左括号的数量一定要比右括号的数量多 左括号和右括号的数量都不...

2019-04-08 15:57:16

阅读数 14

评论数 0

LeetCode 102. 二叉树的层次遍历

这是一道非常经典的二叉树层次遍历的问题,就是将二叉树逐层输出,首先来看一下题目: 看到题目中的层次遍历,我们首先想到的就是广度优先搜索算法BFS,我们来看看如何实现广度优先算法,首先我们将二叉树放入队列中,然后遍历队列,每次将节点的左右孩子放入队列的尾部,并将当层的节点输出,这样就可以实现广度优...

2019-04-08 14:23:32

阅读数 22

评论数 0

LeetCode122.买卖股票的最佳时机 II

这道题的难度很小,主要是要为大家介绍一下贪心算法,首先我们来看一下题目: 在此,我们可以考虑使用贪心算法,所谓贪心算法就是在当前的状态下,来获取当前状态下最好的结果或者利益,不用从全局来考虑问题,这就是贪心算法的思想。这道题目我们用贪心算法,只用考虑当前状态下的最大利润,只要是当天股票相较于上一...

2019-04-08 10:42:06

阅读数 22

评论数 0

LeetCode 50.Pow(x, n)

这道题目比较简单,就是要实现一个指数函数,题目如下: 首先,如何来解答这个题目,我们可能会想到,在很多语言中都内置了这个函数,直接可以调用库函数,这个时候的时间复杂度为 O(1)O(1)O(1),还有一种方法就是暴力解法,写一个循环,循环次数为 nnn,每次都乘以 xxx,所以这个时候的时间复杂...

2019-04-04 14:49:45

阅读数 15

评论数 0

LeetCode 242.有效的字母异位词

这道题目比较简单,主要想要分享的就是解题的思路与思考,首先我们来看看这道题目: 也就是说我们需要找到两个字符串是否含有相同的字母以及字母出现的数目,那么最简单也是我们最容易想到的就是将这两个字符串排序,然后将两个字符串进行比较是否相同。因为Python中集成了排序的方法,所以代码也非常简单: c...

2019-04-02 16:49:30

阅读数 18

评论数 0

LeetCode 239.滑动窗口最大值

这道题的题目比较简单,就是在数组中滑动窗口,并找出每次滑动之后窗口中的最大值输出,题目如下所示:

2019-03-30 12:15:55

阅读数 23

评论数 0

LeetCode 703.数据流中的第K大元素

我们首先来看看这道题目,找到数据流中第K大的元素: 首先拿到这道题目,我们有可能会想到一种暴力的解法,就是首先把输入的数据流进行排序,然后从排好序的数据流中找到第K个元素,就行了,这也是一种解法,我们可以计算一下这种解法情况下的时间复杂度,假设有 NNN 个元素,要将 KKK 个元素进行快速排序...

2019-03-29 14:46:11

阅读数 41

评论数 0

LeetCode 160.相交链表

这道题目是要找到两个链表相交的起始节点,题目如下所示: 这里有一个很巧妙的解法,我们来从这两个链表的结构来分析,我们如何去找到两个链表相交的起始节点呢?相交之后的链表是一样的,我们看下图所示: 在图中 AAA 点和 BBB 点分别表示两个链表的起点,CCC 点事我们要找的交点,ACACAC 的...

2019-03-28 16:07:22

阅读数 24

评论数 0

LeetCode 141 & 142.环形链表

首先是141题,如何判断一个链表是否有环,题目如下所示: 拿到这个题目,我们很难想到什么比较简洁快速的解法,的确这个题目用常规的方法比较难解决。 在这里给大家介绍一个快慢指针的解法,首先我们定义两个指针 fast 和 slow ,分别表示快指针和慢指针,快指针是每一次走两步,慢指针是每一次走一步...

2019-03-23 16:20:24

阅读数 34

评论数 0

LeetCode 206.反转链表

这是一道关于链表最基础也是最经典的一道题目,就是我们需要反转一个链表,题目如下所示: 这道题的思想就是我们需要把链表中每个节点所指的方向调转,然后把指针往后移,一直到链表尽头,整个流程可以如下所示: 我们这里有三个指针,分别表示前一个位置 prev,当前位置 cur 和下一个位置 next。每...

2019-03-22 12:19:49

阅读数 52

评论数 0

隐马尔科夫模型(HMM)算法的理解与超详细推导

今天看了徐亦达教授的HMM讲解,感觉有所收获,并将隐马尔科夫模型算法的推导整理了一下,帮助大家一起理解这个算法。首先我们通过一个股票的案例来引入这个算法,我们来看看这个股票行情和涨跌观测值的一个状态图: 由图中可以看出,股市的行情分成牛市、熊市和均市,这三种行情是可以互相转化的,并且互相转化是有...

2019-03-16 13:53:19

阅读数 153

评论数 0

EM算法理解与推导

首先我们开门见山,EM算法到底是干什么的,EM算法是在面对一个含有隐变量的概率模型,是一种迭代算法,目标就是极大化观测数据关于参数的对数似然函数。 这么说可能很难理解,我们来举一个例子吧,就拿抛硬币来说,假设有A和B两枚硬币,要估计的参数是它们各自翻正面的概率。观察的过程是先随机选择硬币A或者B,...

2019-03-12 17:28:38

阅读数 38

评论数 0

手动推导SVM

SVM支持向量机作为一种常用的分类器可以说是应用非常广泛的,我们直接进入正题,来手动推导SVM,让大家一起加深SVM的算法流程。首先SVM的意义就是在空间中找到一个超平面,把空点中的两个线性可分的点集完全分开,我们把这个超平面定义成w⋅xi+b=0w \cdot {x_i} + b = 0w⋅xi...

2019-03-11 18:32:06

阅读数 62

评论数 0

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