- 博客(39)
- 资源 (12)
- 收藏
- 关注
原创 整数的阶乘
题:给一个数字 n ( 0 < n <= 5000 ), 写一个程序,以字符串的形式返回数字的阶乘思路:由于阶乘的结果一般都很大,直接用整形存会溢出,我个人觉得最好的思路就是用数组来存结果。从1开始到n,挨个乘,每次相乘的结果都存数组。对于多位数乘多位数,我们可以把它拆分成一个个的一位数乘多位数,然后把结果加起来,最后把数组元素拼成字符串即可。 其实这个题的难点就难在进位,需要考虑很多种情况,所以在
2017-10-25 17:13:52
3075
原创 二叉树中和为某一值的路径
题:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路:这个题的思路其实很简单,先把二叉树从根节点到叶子节点的所有路径找出来,然后一条路径一条路径去找符合的就行了。关键就是在找路径这个地方。由于我们不能知道这颗二叉树到底有多少条路径,所以我们得找完一条路径,就判断这条路径是否符合条件,这就关系到路径的存储问
2017-10-20 18:43:17
462
原创 判断某整数是否为两数平方之和
题:给定一个整数 N,写一个程序判断是否存在 2 个整数 a、b(a < b),使得 a^2 + b^2 = N如:输入:N = 5,输出:true 输入:N = 7,输出:false思路:我们可以把整数N当成是一个圆心在原点的园的半径的平方。 即圆的方程为:a^2 + b^2 = N。这样,我们就可以使得a从1开始到根号N,在这个区间内找一个数b,使得根号(N-a^2)为整数,如果找到了就输出t
2017-10-20 12:47:11
6504
原创 二叉搜索树的后序遍历序列
题:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路:根据二叉搜索树的特性以及二叉树的后序遍历特性我们可以知道,数组的最后一个数字为二叉搜索树的根节点,从数组的第一位开始,直到第一个数值大于根节点的位置,为二叉搜索树的左子树,剩下的为二叉搜索树的右子树。因为二叉搜索树的特点是左小右大,所以如果右子树里面出现
2017-10-17 16:00:00
423
原创 从上往下打印二叉树
题:从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路:请看清楚这道题,同层节点从左至右打印,现有的二叉树的前序、中序、后序遍历都是不满足题目的条件的。 这里可以借助队列来实现,从二叉树的根节点开始,写个循环依次按照从左往右的顺序把节点添加到队列里,一边添加的同时,一边从队列中取队列的第一个节点,取完之后就删除这个节点,直到队列为空,循环结束。由于队列的特性是先进先出,所以可以保住打印的时候
2017-10-16 15:51:02
912
原创 顺时针打印矩阵
题:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.代码:public ArrayList<Integer> printMatrix(int [][] matrix) { A
2017-09-28 12:26:29
329
原创 Centos踩坑记录之部署web项目
继续踩坑系列。之前总算是把ftp服务器和tomcat都搞好了。 今天firezilla连ftp服务器的时候出了点小问题,可以登录成功但是一直报获取不到目录。后面折腾了一下下发现是网络不行,强行拿手机开热点传了个80M的war包上去。心疼自己的钱。。。。要把项目部署到服务器上去,得先用maven把项目打成war包,然后传到服务器上去。 这一步就省略吧,maven打包的坑,你们自己挖去。我就不陪你们挖
2017-09-24 00:01:56
855
原创 CentOS踩坑记录之安装tomcat
安装tomcat之前首先需要安装java。直接用centos自带java安装包,所以直接用yum安装java,简单快捷。查看yum库中都有哪些jdk版本(暂时只发现了openjdk)yum search java|grep jdkldapjdk-javadoc.x86_64 : Javadoc for ldapjdkjava-1.6.0-openjdk.x86_64 : OpenJDK Run
2017-09-23 01:43:25
497
原创 CentOS踩坑记录之ftp服务器搭建
最近脑瓜子一热,买了台阿里云服务器。想着无聊的时候玩玩。但让我怎么也没想到的是,我就是从那时候开始在linux的路上一去不复返。。。。搭这个东西的原因是因为在装tomcat的时候没有找到合适的镜像地址,导致下载一直出现404。所以只能在本机上下好了传到服务器上去。废话不多说,先上完整步骤。安装vsftpdyum install vsftpd -y启动vsftpdservice vsftpd
2017-09-23 01:20:35
738
原创 树的子结构
题:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路:首先要判定B是不是A的子结构。则需要判断B的根节点是否存在于A里面。这个很好写,直接递归遍历树A找出节点值等于B的根节点值的节点即可。找到之后需要匹配B和从A中找出的这个节点是否一样,如果不一样,再从当前节点的左右子树一直找,找到后再匹配。一直重复查找-匹配这两步直到匹配成功或者遍历完A树为止。怎么匹
2017-09-18 18:18:00
464
原创 合并两个有序的链表
题:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:用一个新链表c来记录两个链表a,b合成后的链表。同时遍历a,b,每次比较a和b的元素,把小的放入c里,并且把放入c里面的元素所属的链表往后移一位。比如说现在a所指向的节点的值为2,b所指向的节点的值为3,这时候,把a所指向的节点放入c中,并且把a指向2的下一个节点。直到a,b的元素都放入c中,合并结
2017-09-18 15:52:46
447
原创 最长子序列
题:给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱) 例如:给定一个长度为8的数组A{1,3,5,2,4,6,7,8},则其最长的单调递增子序列为{1,2,4,6,7,8},长度为6。思路1:第一眼看到题目,很多人肯定第一时间想到的是LCS。先给数组排个序形成新数组,然后再把新数组和原数组拿来求LCS,即可得到答案。这种解法很多人能想得到,所以就不再赘述。思路2:按
2017-09-18 13:52:56
762
转载 反转链表
本文转自:http://blog.csdn.net/feliciafay/article/details/6841115 我自己对原文做了部分修改。如何把一个单链表进行反转?方法1:将单链表储存为数组,然后按照数组的索引逆序进行反转。方法2:使用3个指针遍历单链表,逐个链接点进行反转。方法3:从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,最后将第一个节点挪到新表的
2017-09-14 17:26:46
339
原创 整数的二进制中1的个数
题:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路1:对于输入的整数n,判断它的二进制表示的最右边是否为1,然后将n右移一位,直到n为0,就可以得出整数n的二进制表示中1的个数。怎么判断二进制表示的最右边是否为1呢,拿n与1做与运算,因为1的二进制表示为0001,所以,如果n的二进制表示的最右边为1,那么与运算的结果就是1。代码:public int NumberOf1(int
2017-09-14 11:18:59
706
原创 矩形覆盖
题:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?思路:这道题,看起来很复杂,其实还是一个最基本的动态规划题。题目说的是2*n的矩形。 我们可以不看第二行,只看第一行,这时候就变成了1*n的矩形。这下是不是和青蛙跳台阶是一样的了,当只剩最后一个2*1的矩形的时候,只有两种方法,第一种是横着放,第二种是竖着放,横着放的情
2017-09-13 19:24:39
233
原创 变态跳台阶
题:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:首先这个青蛙比以前的青蛙更厉害了,可能是被机器学习训练的更加牛逼了。。如果还用之前的动态规划来求解,那么最后一步就有n-1种可能,这个就不符合我们用动态规划的初衷了。 但是我们还是可以用动态规划来分析一下,当还剩最后一步就到达终点的时候,有n-1种走法,就是一次跳1级、一次跳两级。
2017-09-13 19:05:33
265
原创 青蛙跳台阶
题:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:标准的动态规划题。跟斐波拉契数列一样的,当只剩最后一步就可以跳到第n级台阶的时候,只有两种跳法,那就是从n-1级跳到n级和从n-2级跳到n级。所以要求跳到n级的总方法数就只需要求跳到n-1级的总方法数和跳到n-2级的总方法数,写成关系式就是F(n)=F(n-1)+F(n-2),这正好就是斐波拉契数列的
2017-09-13 17:43:34
285
原创 用两个栈实现一个队列
题:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:栈是先进后出,队列是先进先出,所以用栈1来入栈,用栈2来出栈。对于入栈:首先判断栈2是否为空,如果不为空,先把栈2所有的元素倒入栈1,然后再把需要入栈的元素入到栈1;其他情况,则直接把需要入栈的元素入到栈1。对于出栈:首先判断两个栈是否都为空,为空则抛出空指针异常。不为空则再判断栈2是否为空,如果栈2不
2017-09-13 17:05:52
274
原创 根据二叉树的前序遍历和中序遍历构造二叉树
题:给出某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列pre:{1,2,4,7,3,5,6,8}和中序遍历序列in:{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:令pi=pre[0],由二叉树的前序遍历特性可知pi为二叉树的根节点root,遍历in,得到in[j]==pi的下标j,由二叉树的前序遍历和中
2017-09-12 18:30:58
995
原创 多叉树求最优解问题
阿里巴巴的ODPS大数据处理平台可以启动一系列并发的作业,每个作业中存在一系列存在父子关系的任务。每个任务用一个三元组表示–(任务id,父任务id,执行开销),其中任务id是一个正整数(>0);父任务id为0表示根任务,每个作业存在一个唯一的根任务,并且,所有的任务,如果其父任务id不为0,那么必然是一个已经存在的根任务id;执行开销是一个正整数(>0)。系统中至少存在一个作业。举例如下: (1,
2017-07-05 11:56:56
2900
2
原创 二战漫画爬虫(爱漫画网)
申明:这篇博文纯属用来技术分享,如他人利用博文内容来获取商业利益均与本人无关!之前刚入门的时候,为了练手去爬了爱漫画网,那时候被它虐的不要不要的,后面搞了几天,东西是能爬到了,但是速度实在太慢了,就放弃了。 这两天一时兴起,又去二战了爱漫画网。结果圆满成功!代码我已经上传到github,地址:https://github.com/ant-chow/ComicCrawl.git 。话不多说,先分享一
2017-06-04 16:24:25
6634
3
原创 windows 下安装python numpy和scipy的一些问题
今天在安装scipy的时候遇到一个问题: no lapack/blas resources found在网上找了一下,出这个错误的大概原因就是我是windows系统,还是64位的。网上的教程大部分是linux系统的,SourceForge上面也只有32位的安装包。后面找了很久终于找到了64位的安装wheel文件。安装scipy之前需要安装numpy+mkl,下载地址:http://download
2017-05-25 18:33:05
691
原创 关于python sklearn库在windows平台下的一些问题
这个问题困扰了我好些天,就在刚刚终于解决了。刚好有段时间没写博客了,吓得我赶紧出来分享一下好东西/手动滑稽问题大概就是这样的,最近在玩pyqt,用了sklearn来做多元线性回归分析,在本地运行的好好的,等我用pyinstaller来打包的时候,一大串的问题来了。首先就是pyinstaller打包后,用.exe文件运行的时候,报错:ImportError:no module named typede
2017-05-25 18:20:32
1051
原创 Python GUI打包程序pyinstaller在Windows环境下的搭建
我最先尝试用的打包程序是py2exe,在网上找了很多用的教程,发现写的都不是很明确,尤其是对于初学者,根本就看不懂,还有就是写的大部分都是一样的,是否原创让人深思。后面我无意中发现了这个视频,介绍了另一种打包程序pyinstaller。这个用起来就没有像py2exe那样,还要自己写代码去打包程序。pyinstaller的安装很简单,直接用pip命令:pip install pyinstaller就可
2017-04-15 16:31:05
3412
原创 Cannot mix incompatible Qt library (version 0x40806) with this library (version 0x40807)
错误解释: 在加载Qt版本为(0x40807)的时候加载了(0x40806)的版本导致出错解决方法: 这种错误出现的原因有很多种。我是在用pycharm编译pyqt gui程序的时候,我的代码是用pyuic将qtdesigner生成的.ui文件转换成.py的python文件的。 结果运行的时候就出了这个错误。在网上找了很多方法也没有解决。后面去本地的python放库的文件夹,我的路径是:D:\
2017-04-15 15:07:23
2400
原创 windows下python GUI开发环境的搭建
需要的东西有:pyqt(qt库的python版)pythonIDEeric6压缩包下载地址:http://download.csdn.net/download/ztzy520/9809167pyqt4 windows 64位安装包下载地址:http://download.csdn.net/download/ztzy520/9809093这个环境的搭建网上的教程我这几天差不多都翻遍了,但是感觉
2017-04-10 11:28:52
2944
原创 webmagic根据xpath解析页面
昨天做页面的时候,有一个需求,大概要实现的功能就是用户输入一个网址url和一个xpath路径,根据这个xpath去用户给的url里解析,最后呈现出解析的结果,以达到用户判断自己写的xpath是否正确。之前百度了一个网上的一种用htmlclean来解析的,我试了一下,效果还不错,也比较简单,毕竟人家是专门用来做解析的嘛。后面因为项目里用的爬虫框架是webmagic,想的是最好不要引用别的框架了,于是就
2017-03-16 11:38:26
6894
原创 漫画爬虫的一个小小的例子
逢年过节胖三斤,技术手法退十年。- - 差不多一个多月没碰博客了,都快要没手感了。 说一下前一段时间玩爬虫的时候作死的一个小例子吧。大概的描述就是闲的没事做,去爬了一个漫画网站,想着成功了去装个逼。结果代码写到吐血。这个网站的反爬还真是做的让我这种技术渣又爱又恨啊,这个漫画网站就是:爱漫画(http://www.iimanhua.com)。如果有哪位大牛攻破了的话请一定要多多指教小弟一下,感激不尽
2017-02-23 17:51:44
1868
原创 python基于PIL和tesseract的验证码识别
之前搞这个搞了一段时间,后面遇到了点小麻烦,导致识别率太低了,最多也就百分之20的样子。心灰意冷,弃了一段时间。上次在论坛看到一篇大牛的关于PIL对图片各种处理各种算法的博突然又想起了这个,又随便搞了下,大大提高了识别率啊。先给代码:原图: im = Image.open("C:\Users\Administrator\Desktop\python\\3.png")#调色enhancer = I
2017-01-16 19:11:44
1139
原创 前台遍历后台返回的json数据问题
今天碰到一个比较尴尬的问题,前台用ajax去后台读数据库的数据,总共3条,每一条用一个JSONObject装起来,然后最后再用一个JSONArray封起来转换成String传到前台去。结果尴尬的事情来了,前台刚开始的时候的代码:$.ajax({ url:'XXX' ,success:function (data){ //data类似于[{"id":"1","name"
2017-01-13 18:02:10
9220
原创 layer弹窗的一些样式问题
layer算现在比较火的前端框架了。由于本人审美太差,所以做前台基本都是凑(can)合(bu)凑(ren)合(du),于是就有了这篇博。昨天在改一个页面的弹窗样式的时候搞得我不要不要的,页面上有一个用来提示的layer弹窗,弹窗要给用户提示一个消息,还要提供给用户两个用来选择点击的按钮,layer弹窗里面如果加了按钮的话,默认第一个按钮和后面的按钮样式会不一样。像这样: ,第一个按钮永远是蓝色
2017-01-12 10:30:00
21012
2
原创 java处理springboot whitelabel error page
最近在做的一个项目在做用户友好交互的优化,由于用的是springboot,其中有一项就是改掉springboot的whitelabel error page的默认样式。其实就是自己写一个错误页面处理程序,在发生错误时拦截然后跳到自己写的指定的页面去。百度了一下,有一种常用的用Controller类实现的方法,看起来有点麻烦,就没试。后面在StackOverflow上面找到了一个相对简单的办法。 先给
2017-01-10 19:38:17
2380
原创 java导出pdf文件横向显示
今天做项目的时候遇到一个很奇怪的需求,具体就是网页上面有个可供用户下载的pdf文件,由于是表格形式,而且很多列,导致像往常那样竖着显示的话就显得很难看,于是就要求在下载到本地的时候横着导出,方便用户查看。 后面想了一下是不是导出的时候把默认的纸张大小改成横着的就可以了。百度了一下可行,问题又来了,在哪里改默认的纸张大小,百度了半天看了一大堆杂七杂八的东西,最后浓缩出来一句话:所有的文件导出一定会先
2017-01-06 17:03:02
8522
原创 Git同步代码的基本步骤
这里给大家安利一个非常强大的代码同步工具:Git。它可以让我们更轻松的同步其他人的代码,个人觉得比svn要好用很多。具体关于Git的一些细节很复杂我自己也说不太清楚,大家自行百度。下面展示一下要使用Git记录版本库的一些基本步骤(ps:下面的步骤都是用来同步远程仓库的代码的步骤,如果还没听说过git的话建议去看一下这个教程,个人感觉这个是写的最好的git教程了,地址:http://www.liaox
2017-01-04 19:54:46
36029
2
原创 js动态生成html表格
刚在论坛上面逛的时候看到有人问html表格怎么动态生成,我回了一下发现有好多小伙伴追问- - 看来还是有很多人不会的啊,于是决定写个博来解救万千小伙伴于水火之中(mdzz)首先我们要在html里面有如下代码:<table> <tbody id="tbody1"> </tbody></table>如果想在table里面加其他的可以随便加(如加一个表头等等),只需要知道等会js动态
2017-01-03 20:15:11
12858
原创 爬虫之页面链接获取
大一的时候见到一个研一学姐用C#写了个网页链接的爬虫,觉得好高大上,最近又有朋友问我怎么写,于是无聊就用python(懒得打开VS)写了个简单的单级链接获取先给代码:from selenium import webdriverfrom selenium.webdriver.firefox.firefox_binary import FirefoxBinary## 网页链接获取url = '你要趴
2017-01-01 15:28:28
2918
原创 python之图片文本识别
这里需要用到python的几个库,分别是pytesser,以及pytesser的依赖库PIL。python的版本建议用2.7或者2.7一下的都行,不建议用python3以上的,因为python3不向下兼容,所以有很多python2的东西它不支持pytesser下载的话,我直接在pycharm里面下全是失败,用DOS的命令行下也是失败,所以还是自己直接去google下吧 地址:http://code
2016-12-30 20:48:09
16823
原创 爬虫之自动化测试
首先需要知道自动化测试所必需的selenium selenium是一个用于Web应用程序测试的工具。selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。 支持的浏览器包括IE,chrome和Firefox等。 再者你要选择一个用来测试的浏览器,我选的是火狐,其他的没试过,应该都差不多。 如果你选火狐的话就要用到火狐的浏览器驱动器,也就是geckodriver。这个东西很常见,随
2016-12-30 10:30:46
5970
1
原创 将n列矩阵拆分成固定长度k(k<n)列的子矩阵,找出所有方案的排列组合算法
如有疑问可加QQ:936285470,交流技术扯淡都可以前两天朋友让帮忙写一个论文里面的矩阵拆分算法,大概的意思就是有一个m×n的矩阵,给定一个整数k,然后按照k的 值将矩阵拆分成m×k的矩阵,求所有的方案。看了之后想了一下,最简单的排列组合算法嘛,就去百度了一段排列组合代码下来改(不想手写你懂得)后面找到了一个排列组合写的还不错的博,我这里面有一部门代码用的也是他的,
2016-12-29 10:11:03
1319
PyQt4-4.11.3-gpl-Py2.7-Qt4.8.6-x64.exe
2017-04-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人