Jaster_wisdom的专栏

待到山花烂漫时,她在丛中笑

leetcode15. 三数之和

题目大意:求出集合中三个元素之和等于0,并且无重复的三元组题目分析:本题直接用暴力搜索来枚举所有情况,时间复杂度为O(n^3),超时下面使用第二种方法,时间复杂度降到O(n^2):它的思路是先将集合中的元素从小到大排序,然后确定三元组中的第一个元素为集合中的第一个元素,然后用指针j,k分别指向第二...

2018-04-19 23:12:16

阅读数 541

评论数 0

leetcode14. 最长公共前缀

题目大意:求一组字符串的最长公共前缀,就是它们这几个字符串共有的一些前缀题目分析:本题我也没什么好方法,就是按个遍历,看每个字符串的第一个字符是不是都存在,然后看是不是相等。若相等,则再判断第二个字符,是不是都存在,都相等。一旦出现某个字符串的某位字符不存在或者与之前的不一样,则循环结束,返回当前...

2018-04-16 22:32:23

阅读数 136

评论数 0

基于PyTorch的LSTM长短时记忆网络实现MNIST手写数字

本篇博客主要介绍在PyTorch框架下,基于LSTM实现手写数字的识别。在介绍LSTM长短时记忆网路之前,我先介绍一下RNN(recurrent neural network)循环神经网络.RNN是一种用来处理序列数据的神经网络,序列数据包括我们说话的语音、一段文字等等。它的出现是为了让网络自己有...

2018-04-12 20:56:42

阅读数 3073

评论数 0

leetcode11. 盛最多水的容器

题目大意:找出两条直线,使得两条直线与水平轴构成的容器能装的水最多题目分析:如果使用挨个遍历,枚举出所有可能的两条直线a[i],a[j],那么最大的水量就是min(a[i],a[j])*(j-i)这种算法的时间复杂度是O(n^2),显示超时。下面介绍一种O(n)时间复杂度的做法:起初,用两个指针i...

2018-04-12 17:46:58

阅读数 116

评论数 0

LeetCode8. 字符串转整数(atoi)

题目大意:实现atoi函数,这个函数是实现字符串转成整数的功能题目分析:本题的关键在于特殊情况的处理。特殊情况实在太多,但只要通过一次次提交,知道自己的代码在哪些样例上通不过,然后修改代码使其覆盖这个样例即可。特殊样例:""  、"     +...

2018-04-11 23:31:16

阅读数 517

评论数 0

LeetCode6. Z字形转换(模拟)

题目大意:将给定的字符串在给定的行数内不断地画Z字,然后横向读出字符题目分析:本题只要将画Z字的过程模拟出来,按照列的顺序来填字符就可以了。我是将画布用一个numRows*len的二维矩阵来初始化,初始化所有格子为'\0',然后按列来填字符。列有两种情况:一种是每列有numRows个字符,这种情况...

2018-04-11 15:31:52

阅读数 64

评论数 0

基于PyTorch的CNN卷积神经网络识别MNIST手写数字

本篇博客主要介绍基于PyTorch深度学习框架来实现MNIST经典的手写数字,运用CNN卷积神经网络。MNIST数据集来自美国国家标准与技术研究所,其中训练数据有60000张,测试数据有10000张,每张图片的大小是28*28像素我们可以基于PyTorch直接下载该数据集。该识别程序先使用一层卷积...

2018-04-11 10:51:57

阅读数 758

评论数 0

leetcode5. 最长回文子串

题目大意:求出一个字符串中的最长回文子串。回文子串的意思是前后对称,也就是类似aba,abba,bb等题目分析:可以通过枚举所有的子串,然后判断该串是不是回文的,这样的方法明显是O(n^3),其中枚举子串花费O(n^2),判断回文又要花掉O(n)的时间。下面通过简单的处理使其降到O(n^2)的时间...

2018-04-10 21:44:39

阅读数 63

评论数 1

leetcode7. 颠倒整数(栈实现)

题目大意:将一个32位的整数颠倒输出,注意如果颠倒后的整数超过了int表示的范围,则输出0题目分析:首先,明确32位整数可表示的范围是[-2^31,2^31-1]。 当颠倒的数超过这个范围,则输出0. 本题主要使用栈来实现,从高到低位,依次求得每位数,并将其压入栈中。然后将栈中的元素依次弹出,注意...

2018-04-10 21:06:10

阅读数 113

评论数 0

leetcode4. Median of Two Sorted Arrays(求两个排序数组的中位数)

题目大意:已知两个排好序的数组nums1和nums2,长度分别为m和n,要求的是合并nums1和nums2之后的所有数的中位数。时间复杂度要求O(log(m+n))题目分析:容易想到的是归并排序算法,用两个指针分别指向nums1和nums2,分别比较两个指针所指向的元素的大小,哪个小,哪个就往后移...

2018-04-10 20:24:30

阅读数 91

评论数 0

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

题目大意:求出一给定字符串的最长子串,要求子串中的字符无重复。子串与子序列的区别是:子串必须要求是相连着的字符组成,而子序列则允许字符可间断。题目分析:用num[i]表示以字符s[i]结尾的最长子串,我们只要将指针从i往前扫描,发现有重复的字符则停止计数,得到的数值即以s[i]结尾的最长子串的长度...

2018-04-10 15:33:46

阅读数 53

评论数 0

加速神经网络训练方法及不同Optimizer优化器性能比较

本篇博客主要介绍几种加速神经网络训练的方法。我们知道,在训练样本非常多的情况下,如果一次性把所有的样本送入神经网络,每迭代一次更新网络参数,这样的效率是很低的。为什么?因为梯度下降法参数更新的公式一般为:如果使用批量梯度下降法(一次性使用全部样本调整参数),那么上式中求和那项的计算会非常耗时,因为...

2018-04-09 21:33:36

阅读数 2303

评论数 0

LeetCode2. Add Two Numbers (链表操作)

题目大意:给定两个列表,将它们逆序求和,输出和。题目中规定中列表中的每个数都是非负,并且都是个位数。题目分析:本题题目要求要用链表来操作,值得注意的是两个列表非等长的情况。由于我是刚开始刷LeetCode的题,所以对于编程环境还不太熟悉,在LeetCode中一些数据结构会实现给定好,不需要我们自己...

2018-04-03 19:21:31

阅读数 83

评论数 0

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