自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

EWilsen

机器学习算法研究生

  • 博客(71)
  • 收藏
  • 关注

原创 深度学习框架搭建 Ubuntu16.04+CUDA+Anaconda4.2+Python3.5+keras+TensorFlow gpu+cuDNN

ps:教研室没有做深度学习的师兄,所以一切靠自己,重装Linux3次,折腾了一个星期,把整个安装过程搞清楚了,这里说一句,百度或者Google到的基本都用不了,首先你可以看看发表日期,而深度学习框架的几部分基本是不断更新的。后面我会说明白,我遇到的坑。由于安装好了之后就抓紧做项目了,所以没有及时截屏存储,但是核心的问题,印象太深刻~—————————————————————————————————...

2017-09-13 16:30:47 1972 4

原创 剑指offer第三十七题数字在排序数组中出现的次数

题目描述统计一个数字在排序数组中出现的次数。解题方案1.排序数组可以直接使用二分查找,统计次数,但是比较慢2.STL中的一些库函数代码Python版本和开挂一样 return data.count(k)实现了这些二分查找的两个版本lower_bound,upper_bound,直接调用就好了。O(log n)class Solution {p...

2018-09-07 16:22:01 221

原创 剑指offer第三十六题两个链表的第一个公共结点

题目描述输入两个链表,找出它们的第一个公共结点。解决方案1.暴力法,遍历一个链表,没遍历一个结点的时候,在第二个链表上顺序遍历每个结点。2.用两个指针扫描3.”两个链表“,最终两个指针到达 null 或者到达公共结点。长度相同有公共结点,第一次就遍历到;没有公共结点,走到尾部NULL相遇,返回NULL长度不同有公共结点,第一遍差值就出来了,第二遍一起到公共结点;没有公共,一起...

2018-09-07 09:22:06 206

原创 剑指offer第三十五题数组中的逆序对

题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于%100的数据,size<=2*10^5输入...

2018-08-27 16:36:59 236

原创 剑指offer第三十四题第一个只出现一次的字符

题目描述在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置题目分析看到题目第一想法就是用map,涉及计数和不同类型数据的存储。class Solution {public: int FirstNotRepeatingChar(string str) { map<char,int> mp; ...

2018-05-02 14:37:38 198

原创 剑指offer第三十三题丑数

题目描述把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。题目分析说下思路,如果p是丑数,那么p=2^x * 3^y * 5^z,那么只要赋予x,y,z不同的值就能得到不同的丑数。如果要顺序找出丑数,要知道下面几个特(fei)点(hua)。对于任何丑数p:a.那么2*p,...

2018-04-27 00:20:17 296

原创 剑指offer第三十一题整数中1出现的次数(从1到n整数中1出现的次)

题目描述求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。题目分析写一个python的解法。一、1的数目编程之美上给出的规律:1. 如果第i位(自右至左,从1开始标号)...

2018-04-25 22:52:54 189

原创 剑指offer第三十二题把数组排成最小的数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。题目分析第一种暴力思路,枚举所有可能排序去最小值,但是肯定复杂度是比较高的,所以比较好的方法是转化为字符串,通过排序比较。class Solution {public: string PrintMinNum...

2018-04-25 22:37:28 145

原创 剑指offer第三十题连续子数组的最大和

题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向量的长度至...

2018-04-24 13:22:51 179

原创 剑指offer第二十九题最小的k个数

题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。题目分析题风一转,简单易行,直接上代码吧。可以库函数sort,快排思想和堆排序class Solution {public: vector<int> GetLeastNumbers_Solution(vector<int> input,...

2018-04-22 10:31:17 196

原创 剑指offer第二十八题数字中出现次数超过一半的数

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。题目分析拿到题目我的第一想法使用map,统计次数与size比较,O(n)即可。后来有想能不能改进,书上的快排思想感觉不适合奥卡姆剃刀原理。所以用了几种简单的算法。class Solu...

2018-04-22 00:57:15 156

原创 剑指offer第二十七题字符串的排列

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。题目分析题目中要求字符串的全排列,但是重点是如何用字典序输出,这样的题目有投机取巧的做法,就是用STL的首先必然是利用库函数next_pe...

2018-04-21 17:39:14 173

原创 剑指offer第二十六题二叉搜索树与双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。题目分析在二叉树中,每个结点都有两个指向子结点的指针。在双向链表中,每个结点也有两个指针,它们分别指向前一个结点和后一个结点。根据左子节点的值总是小于父结点的值,右子结点的值总是大于父结点的值。使用中序遍历树的结点。方法有两种递归非递归。/*struct TreeNode {...

2018-04-21 16:14:05 182

原创 剑指offer第二十五题复杂链表的复制

题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)题目分析/*struct RandomListNode { int label; struct RandomListNode *next, *random; ...

2018-04-21 10:55:25 160

原创 剑指offer第二十四题二叉树中和为某一路径的值

题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。题目分析两种方法,递归的DFS和非递归的做法就是利用二叉树的后序遍历的非递归算法来做的,由于二叉树的后序遍历的非递归算法要借助辅助栈,当访问一个结点时,栈中的元素依次就是从根到达该结点的路径。/*struct TreeNode { int val;...

2018-04-21 00:40:10 144

原创 剑指offer第二十三题二叉搜索树的后序遍历序列

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。题目分析这道题有两种思路,根据后序遍历的规律左右根的结构,可以确定最后一个元素为根,第一部分是左子树结点的值,均小于根节点,第二部分的右子树都大于根节点。非递归 非递归也是一个基于递归的思想:左子树一定比右子树小,因此去掉根后,数字分为left,righ...

2018-04-20 22:10:13 131

原创 剑指offer第二十二题从上往下遍历二叉树

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。题目分析层次遍历,最主要的是把二叉树的层次遍历当做为中先进先出的队列。例如打印根节点的时候就将左右节点按照顺序放入队列,在打印左节点的时候按顺序保存其左右节点,在pop队列元素即可。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right...

2018-04-20 21:15:22 206

原创 剑指offer第二十一题栈的压入和弹出序列

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)题目分析将压入顺序逐渐进栈,当遇到与第二个序列相同的pop,重复这个过程,不等时退出。如果为空...

2018-04-20 17:47:59 132

原创 剑指offer第二十题包含min的栈

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。题目分析实现栈结构,需要考虑的是不要用最复杂的栈实现去思考,因为重点是实现带有getMin功能的栈,由于栈是常用的数据结构,所以实现的时候考虑用最快的O(1)时间复杂度,效率更高,但是需要承担的就是额外空间复杂度。注意的地方有两点:1.push和pop时同时的,需要同时压栈或者出栈,不然会导致不平衡,输出结果会出现问题2...

2018-04-20 17:06:38 147

原创 剑指offer第十九题顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.题目分析这个题目的思路比较简单,但是很容易陷入一个一个结点去找,坐标的思维中这样的方法很难实现。左神的课中也有原题。 但是对代码能力...

2018-04-19 23:09:55 132

原创 剑指offer第十八题二叉树的镜像

操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5思路分析:两种方法,递归...

2018-04-19 00:27:52 129

原创 剑指offer第十七题树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)题目分析:思路放一段大佬们写的代码吧,解释的异常清晰。虽说是JAVA代码但是,还是那句话语言是通的。二叉树的子树就是头结点开始后面的分支均相同。二叉树中结点太多,遍历结点比较用递归的方法比较合适。如果刚开始根结点相同,就开始比较左右子结点是否相同(注意这个过程不是判断子树的过程,而是严格比较左右子结点...

2018-04-19 00:11:33 155

原创 剑指offer第十六题合并两个排序对的链表

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。题目分析merge函数的写法,递归与非递归两种。核心思想都是用两个指针,用不断移动两个指针,小的放在前面。下面两种比较好的写法。class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {...

2018-04-18 22:50:48 130

原创 剑指offer第十四题链表中倒数K个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。思路:利用尺子原理,设置两个快慢指针,快得指针先走k-1步子,然后快慢指针同时走,快指针到头时,慢指针指向倒数k个元素。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Sol...

2018-04-18 09:51:14 94

原创 剑指offer第十三题链表中奇偶位置交换

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。题目分析:黑色这一部分是本题的重点,如果没有这个要求,如果这题没有加粗的这个条件,这是一个原版微软笔试题,我也来说下做法,设置两个指针head和tail,分别指向首尾,head向后移动,直到找到第一个偶数,tail向前移...

2018-04-18 00:44:39 1341

原创 Python2和Python3的区别

面试中很容易问道的问题,今天好好总结一下越来越多的库要放弃Python 2了,强哥也开始转向Python 3了。最近的项目开始用Python3写了,也体会了一下2和3的区别。主要的一些区别在以下几个方面:print函数整数相除Unicode异常处理xrangemap函数不支持has_keyprint函数Python 2中print是语句(statement),Python 3中print则变成了函...

2018-04-10 00:57:43 310

原创 剑指offer第十二题数值的整数次方

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。思路分析第一种方法:使用递归,时间复杂度O(logn)当n为偶数,a^n =(a^n/2)*(a^n/2)当n为奇数,a^n = a^[(n-1)/2] * a^[(n-1)/2] * a举例:2^11 = 2^1 * 2^2 * 2^82^1011 = 2^0001 * 2^00...

2018-04-10 00:49:42 172

原创 剑指offer第十一题二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路分析:如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1...

2018-04-09 01:20:15 150

原创 剑指offer第十题矩形覆盖

题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?思路分析走过的弯路:开始只是简单地将 n 分成奇、偶讨论,并将 2*2 作为基本单元。测试后通不过,代码就不贴出来献丑了。思路分析:痛定思痛,还是不能够贪小便宜。用归纳法归纳如下,(1)当 n < 1时,显然不需要用2*1块覆盖,按照题目提示应该返回 0。(...

2018-04-09 01:00:58 186

原创 剑指offer第九题变态跳台阶

这道题我觉得不能单独作为一篇博客,但是想想思想更加重要。题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。题目分析关于本题,前提是n个台阶会有一次n阶的跳法。分析如下:f(1) = 1f(2) = f(2-1) + f(2-2)         //f(2-2) 表示2阶一次跳2阶的次数。f(3) = f(3-1) + f(3-2...

2018-04-09 00:35:38 179

原创 ApacheCN开源项目PyTorch源码翻译seq2seq

# -*- coding: utf-8 -*-"""用序列到序列神经网络和注意力进行翻译***************************************************************作者**: `Sean Robertson <https://github.com/spro/practical-pytorch>`_这个教程主要讲解用一个神经网...

2018-04-08 14:02:38 536

原创 剑指offer第八题跳台阶

【问题描述】:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。【思路】:就是类似斐波那契数列。递归思想内存占用过大。class Solution {public: int jumpFloor(int n) { if(n=0) return 0; return jumpFloor(n-1)+jump...

2018-04-08 00:51:11 190

原创 剑指offer第七题斐波那契数列

【题目分析】:求斐波那契数列第n项,n<=39;思路上来就怼了递归。然后GG,明显内存超了。然后用循环和动态规划。直接递归直接GGclass Solution {public: int Fibonacci(int n) { if(n<=2) return 1; else return Fibonacci(...

2018-04-05 00:34:23 247 1

原创 阿里巴巴菜鸟网路技术二面+现场面

皇冠假日酒店,牛逼哄哄~之前一面顺利过了,应该是聊的比较好,评级比较高?所以直接boss面?,一起都是面了3,4次的,也可能是不想要吧,但是形式走完。技术面试内容:1.抽了两道面试题目两道。8个球一个重,天平,几步找到重的?生成模型和判别模型基本形式,有哪些?2.介绍一下项目,面试官说很normal。。。3.深度学习了解多少,有看过底层代码吗?caffe,tf?4.核函数的种类和应用场景。5.项目...

2018-04-03 15:17:21 3734

原创 剑指offer第六题数组旋转

写在前面,1.这是我目前遇到最有趣的题目涵盖多种思路,多种解法,也是多种问题。故记录下来总结一下。半夜看到这道题,首先想到的是二分,后来一看最小,那不是直接遍历就行,但是T=O(n)。2.左神的课程中提到过,对于二分搜索,一般大家都是mid=(left+right)/2,其实在数组特别大的时候会出现越界,故写成mid=left+(right-left)/2,这个是不一样的【题目描述】:把一个数组最...

2018-04-01 01:53:44 605

原创 京东成都AI平台事业部二面

1.介绍一下自己最了解的项目;2.SVM分类的场景是什么样的?2.常用的机器学习算法;3.深度学习的框架keras;4.项目中深度学习的了解程度,卷积层的参数设置;5.你常用的数据清洗手段;6.测试JAVA的了解程度;7.测试Python的了解程度;8.你有什么想了解的?想问的?9.最快什么时候能过来,实习3,4个月可以保证是吧;10.准备一下现场面试,到时候就是主管和HR面试自己感觉还可以答的更...

2018-03-31 14:05:15 1234

原创 剑指offer第十五题链表逆序

输入一个链表,反转链表后,输出链表的所有元素。【题目分析】这个题目思路比较简单,思路代码中都有说明,需要注意的是,可以打印所有元素。这个代码是自己写的struct ListNode { int val;//数据域 ListNode *next;//指针域 ListNode(int x) : val(x), next(NULL) {}//不用考虑Next指针为空,定义了构造函...

2018-03-30 21:57:53 203

原创 剑指offer第五题两个栈实现队列功能

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。【题目分析】:这个题目其实算是一道简单题,只要有数据结构理论的,完全可以理解整个过程,其核心思想就是两个栈,一个用来push原始进入,类似仓库的功能,仓库的元素按照栈的规则存放入货架,再从货架pop元素就可以了,这个题有一个知识盲点,就是为什么每次执行完就要将元素pop一下,其实就是保证当前循环的正常进行和...

2018-03-30 00:40:47 153

原创 京东成都研究院AI平台事业部一面

应该是简历评估面,后面是现场面。1.什么时候可以来实习?2.实习时间是多长?3.一周可以实习几天?4.有做过数据挖掘,统计学习方面的工作吗?5.介绍一下你的比赛。6.数据清洗做过哪些工作?7.数据量有多大?8.会JAVA吗?9.用过哪些数据库?10.行,等通知吧,这两天会有回复。...

2018-03-29 18:29:30 1188

原创 2018携程实习生大数据分析笔试练习题

【题目分析】:确实只是练习题,不过可以提醒学习一下数据输入输出的double需要用%lf,前面的.2表示小数点后两位。#include<bits/stdc++.h>using namespace std;int main(){ int m; double n,sum=0; cin>>n>>m; for(int i=0;i<m;...

2018-03-29 18:23:12 5232

空空如也

空空如也

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

TA关注的人

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