自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (1)
  • 收藏
  • 关注

原创 Ubuntu下vim配色方案

" All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by" the call to :runtime you can find below.  If you wish to change any of those" settings, you should do it in this file (

2017-06-25 15:50:48 1511

原创 ajax提交表单并接收json

需求: 实现点击按钮后,数据以表单形式提交至服务器,并接收来自服务器的返回数据。过程中页面不刷新。html代码<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="https://cdn.

2017-06-25 15:13:38 2336

原创 windows下vim配色方案

set nocompatiblesource $VIMRUNTIME/vimrc_example.vimsource $VIMRUNTIME/mswin.vimbehave mswinif has("multi_byte")    " UTF-8 编码    set encoding=utf-8    set termencoding=utf-8    se

2017-06-24 09:59:18 2767

原创 sklearn库的体验-鸢尾花训练集

鸢尾花训练集鸢尾花训练集是植物学家通过测量三种种类的鸢尾花萼片、花径等参数形成的一个数据集。 在监督学习中,一个最常见的案例就是学习这个训练集,得到一个分类器。当一个全新的鸢尾花个例数据输入后,分类器就能判断这属于哪一种鸢尾花。5.1,3.5,1.4,0.2,Iris-setosa训练集中每一行包括花朵的4个参数(浮点类型)和一个花名(字符串类型)。 在真正处理时,我们需要把花名的字符串转变为浮

2017-06-19 16:24:42 2306

转载 安装和使用SVN

Ubuntu下SVN安装安装和配置过程可以参考安装配置svn只是注意如果svn是以非root用户安装配置的话,在启动服务时,要sudo启动,否则没有写权限。启动命令sudo ./svnserve -d -r /opt/svndata/6-8mk/使用SVN这里介绍分别在windows和Ubuntu下,怎样使用svn来管理我们的代码。 在windows下我们使用SVNtortoise来进行操作,首先

2017-06-09 19:56:42 326

转载 Nginx服务器配置PHP

Nginx服务器以fastcgi的方式来支持PHP,而通常Apache是以模块方式来运行PHP的。ubuntu下安装PHP以5.6版本为例,下载PHP源码,并解压得到php-5.6.2文件夹。 编译并安装php 然后以sudo方式make,make install即可。期间可能需要安装2到3个依赖包,apt-get安装即可。安装完毕后/usr/local/php/sbin目录下应该有一个ph

2017-06-02 19:24:52 484

转载 PHP配置以CGI方式运行

PHP脚本大多以模块方式继承在Apache服务器中,但我们如果想让PHP和服务器不在一个进程中运行,可以用CGI运行方式来实现。在windows下配置CGI运行步骤如下:在Apache的httpd.conf文件中打开cgi模块支持 在Apache的httpd.conf文件中添加cgi要处理的特性后缀 在PHP的php.ini文件中设置: 在Apache的cgi-bin目录中新建测试文件test.c

2017-06-01 19:45:54 3609

转载 PHP操作MYSQL

PHP本身内置函数对Mysql有很好的支持。一种简单方法,也是最普遍的用法如:<?php$mysql_server_name = "localhost";$mysql_username = "dali";$mysql_password = "1992";$mysql_database = "test";$conn = mysql_connect($mysql_server_name, $mys

2017-06-01 16:36:03 278

原创 控制朋友圈好友状态可见性(Python+redis实现)

将数据存入redis中import redistry: rconn=redis.StrictRedis(host='127.0.0.1',\ port=6379,db =0) # message added (hash) rconn.hset('message:1000', 'uid', '100') rconn.hset('message:1000',

2017-05-07 19:44:31 1830

原创 Linux vim一些问题解决

1. 按‘i’后,没有出现insert解决方法: 在vimrc文件中,加入set showmode2. backspace键不能删除,同时方向键在insert模式下会打出ABCD解决方法: 在vimrc文件中,加入set nocompatible3. backspace在insert模式下不能删除空行解决方法: 在vimrc文件中,加入set backspace

2017-05-06 21:45:10 332

转载 Ubuntu下安装Tengine服务器

获得Tengine源码淘宝Web服务器Tengine安装tar -xf tengine.tar.gzcd tengine-2.1.0 #进入解压目录./configuresudo makesudo make install安装过程会报错提示你安装一些依赖包 解决,参考自nginx ./configure error ubuntu 12.04:apt-get install libpc

2017-05-01 17:56:34 2715

原创 Python爬虫与模拟登录

借用cookie进行登录验证的原理一般情况用户使用浏览器进行登录操作,认证通过后服务器返回给用户一个cookie用来保存登录态。cookie是一些经过加密的键值对,在服务器端解密后能够提取到一些用户信息。cookie值在浏览器中按F12键后,输入密码点击登录后可以查看。如下图所示: 利用requests包进行登录代理我们首先将浏览器里复制到的cookie字符串进行处理,转化成为Python的字典

2017-04-30 16:17:20 501

原创 控制朋友圈好友状态可见性的数据表设计

朋友圈状态可见性探讨qq空间里的状态是全可见的,而微信朋友圈的状态只有好友可见。同时别人的状态下面,也仅能看到自己的朋友的评论和点赞。这是如何做到的呢?本文从Mysql数据表的设计来探讨一种实现方法。现在有这么一张好友关系图: 图中连线代表了两人互为好友(状态相互可见),当然像不让某好友看自己状态,不看某好友的状态这些功能也容易实现,实现方法后面会提到。这里以常规的状态相互可见作为主要探讨内容。例

2017-04-29 11:23:58 5177 1

原创 Mysql事务和隔离级别(read committed, repeatable read)

Mysql事务和隔离级别(read committed, repeatable read)所用查看并设置参数的命令查看当前autocommit的状态innodb引擎默认autocommit为on,也就是自动提交打开。事实上我们希望一个事务整体操作完毕后再统一提交。 查看当前autocommit的命令有:show variables like ‘%autocommit%’;或Select @@aut

2017-04-26 17:12:06 8486

原创 python利用MySQLdb操作远程数据库

想实现以下流程:MySQL Server安装在Windows机器上,在Windows机器上用虚拟机跑一个Ubuntu。然后尝试在Ubuntu上用MySQLdb连接Windows的MySQL Server。过程并不顺利,下面一一介绍关键步骤和解决了什么问题。1.安装MySQLdb按照 mysqldb安装步骤 这篇文章的介绍,一步步操作,wget http://source

2017-02-20 19:11:34 994

原创 Python2.7-永久添加路径到sys.path中

最近在配置tornado服务器,需要将tornado的安装目录添加到sys.path中。一种方法是export PYTHONPATH=$PYTHONPATH:/home/YourOwnInstallPath/tornado-1.2.1,这样等于创建了PYTHONPATH变量,会自动加入sys.path路径中。但发现当机器重启后该变量就失效了,也就是这种方法只对本次有效。永久添加的方法是在/

2017-02-15 10:26:45 2679

原创 windows下配置php、Apache、mysql环境踩过的坑

1.安装路径中不能含有空格解压php压缩包到安装目录之后,始终无法工作,检查发现是文件夹名字中含有空格。路径含有中文字符会引起各种奇怪问题,今天发现含有英文空格也可能引起这种问题。解决方法是:删掉php解压后路径中的所有空格,并确保和Apache的httpd.conf文件中路径是统一的。2.安装mysql之后,连接报libmysql.dll的警告解决方法是:在php安装

2017-02-10 09:53:41 248

原创 2016 ThoughtWorks 校招编程作业

import java.text.SimpleDateFormat;import java.util.Calendar;public class Test { public static int dayForWeek(String pTime) throws Exception { SimpleDateFormat format = new SimpleDateFormat("yyyy

2016-10-18 11:05:08 1715 1

原创 C++ 利用make_heap建立小根堆

利用make_heap建立小根堆,首先要#include vector mm85; mm85.push_back(4); mm85.push_back(1); mm85.push_back(7); mm85.push_back(2); mm85.push_back(5); mm85.push_back(8); mm85.push_back(3); mm85.push_back(

2016-06-23 17:44:10 2081

原创 LeetCode 140 Word Break II--In C++

思路:首先想到的是递归的解法,但是考虑到TLE的问题,此路不通。其次是动态规划的版本,结合139 Word Break ,只需扩展那个动态数组就可以了。139中用一个bool数组表示dp[i]之前的串能否形成切分。那么在这个问题中,可以将最后一个成功切出来的单词挂在i角标的下面。这时,最好用一个vector的数组来存储最后一个切下的单词。这样先用动态规划扫一遍之后,会得到上图的结构。

2016-06-21 09:46:53 539

原创 LeetCode 132 Palindrome Partitioning II--In C++

思路:因为做了上一道Palindrome Partitioning,所以一个很简单粗暴的做法就是在上题基础上修改,然而这注定是要TLE的。因为问题的需求已经不一样了,在这道题中只问切分多少次能够产生所有子串为回文的效果。全程只需要保留一个数字即可。想到了动态规划。考虑了很多状态的表示法,都不怎么可行。最后想到了用一个数组cp来表示在字符串s中角标i和i之后的部分需要切cp[i-1]次。

2016-06-18 11:15:51 414

原创 LeetCode 115 Distinct Subsequences--In C++

思路:这个问题让人联想到最长公共子序列的问题,因此可以用动态规划的问题来解决。最难的部分在于状态迁移的实际含义,这点好推出来,却很难理解。和最长公共子序列的问题一样,用dp[i][j]的数组来表示状态,含义为在s中取i个字符,在t中取j个字符,s中i个字符能够得到多少个t中j个字符组成的序列。很明显当j大于i时,结果一定为0。当j等于0时,结果一定为1。这就是边界条件了。同时注意到,当

2016-06-12 11:31:19 237

原创 LeetCode 90 Subsets II--In C++

思路:由于这道题增加了冗余的属性,所以如果用Subset 1中的暴力递归进行求解的话,会浪费很多时间在扫描判断是否有重复值上。因此,类似于全排列的那个题,想到了在之前的基础上添加一个元素即可形成全新的子集的思路。用一个vector>> newadd变量来记录:每增加一个元素,就增加的子集。举例:比如1,2,2这三个元素。首先newadd中加入一个空集。当1加入之后,增加了{

2016-06-04 16:01:54 539

原创 LeetCode 64 Minimum Path Sum--In C++

思路:用动态规划的话,速度是最快的。状态迁移方程:mat[i][j] = (mat[i][j + 1]即要找到一个格子的下边和右边较小的值,在加上grid中给他的值,作为mat中这个位置的最终值。int minPathSum(vector>& grid) { int m = grid.size(); if (m == 0){ return 0; } int n =

2016-05-25 16:23:24 425

原创 LeetCode 56 Merge Intervals--In C++

思路:主要想法是先从Intervals中取出所有的int值,封装到一个Node节点中,节点里保存了他是不是起点,与之匹配的值,和自己的值等3个信息。然后对Node类型的数组workspace进行排序。排序策略为:1.两个点值不相等,值小的排前面。2.两个点值相等,且一个为起点,一个为终点,则起点排前面。3.两个点值相等,且都为起点,终点大的排前面。4,两个点值相等,且都为终点,起点大的

2016-05-23 10:49:25 690

原创 腾讯实习生面试题--替换字符串中指定子串

第一次在面试中手写算法,果然异常紧张,当时表现应该很不好吧,按照第一反应飞快写出来了一个有错误的版本。。。晚上在实验室仔细琢磨了一下这道题,发现早上自己写的简直。。。啊,我要尴尬死了!题目描述:写一个方法,实现将一个字符串中指定子串,全部替换为我们指定的目标串,如输入”abcdabc“,将其中"ab"全部替换为”ccc“。输入3个字符串输出void思路:

2016-04-14 23:22:32 877

原创 二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5

2016-04-11 10:26:05 219

原创 对称的二叉树

题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路分别按照左中右,和右中左的次序遍历该二叉树,如果得到的序列完全相同,则为对称二叉树。要注意一点,对空子树不能简单的不去理会,而是要置一个特别的数字,防止一些节点值全相同的特殊情况发生。如下图:附程序import java.util.Array

2016-04-11 10:00:55 486

原创 二叉树遍历

题目描述二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树;中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树; 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。 给定一棵二叉树的前序遍历和中序遍历,求其后序遍历(提示:给定前序遍历与中序遍历能够唯一确定后序遍历)。输入描述:两个字符串,其长度n均

2016-04-04 22:42:32 246

原创 一道腾讯笔试题--Integer的比较

如程序所示,打印的结果会是什么。

2016-04-03 21:52:04 718

原创 构造MaxTree

题目描述对于一个没有重复元素的整数数组,请用其中元素构造一棵MaxTree,MaxTree定义为一棵二叉树,其中的节点与数组元素一一对应,同时对于MaxTree的每棵子树,它的根的元素值为子树的最大值。现有一建树方法,对于数组中的每个元素,其在树中的父亲为数组中它左边比它大的第一个数和右边比它大的第一个http://write.blog.csdn.net/postedit?ref=tool

2016-03-29 22:29:10 705

原创 二叉树的序列化

题目描述二叉树被记录成文件的过程叫做二叉树的序列化。序列化的方法有很多,这里我们采用括号序列的方法将其序列化,所谓括号序列指的是对于一个节点生成一个括号,括号内是其子树的括号序列,其中左儿子(若存在)的括号在前,右儿子(若存在)的括号在后。对于给定的树,请设计高效的算法,将其序列化。给定一个树的根节点指针root,请返回一个字符串,代表其序列化后的括号序列。思路:递归方

2016-03-29 17:03:10 425

原创 华为机试题--24点游戏--In Java

题目描述问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利输入:4个1-10的数字。[数字允许重复,测试用例保证无异常数字]输出:true or false这个问题首先能够想到的做法就是暴力枚举,但是这样的话情况太多,写的也太麻烦了点。所以用递归的方法来做是很方便的。但是要注意到的是,所给的4个数字的运算顺序并不一定是输入的顺序,而且加括号也

2016-03-06 16:27:00 866

原创 LeetCode 40 Combination Sum II--In Java

主要思路为:利用递归,进行深度优先搜索。构造递归函数f(int st,int st2,int lef,List ar),st表示本轮搜索ar中开始元素的下标,st2表示最后一个纳入ar的元素下标。例如f(0,0,20,ar)的含义为:从第0个到第0个范围内的元素进行组合,还剩余的目标为20,已经判断合法的中间结果存在ar中。public static int[] orcan; publi

2016-02-26 07:34:29 341

原创 LeetCode 30 Substring with Concatenation of All Words--In Java

主要想法为:建立一个hashmap保存所有words中的单词,记录下它们各自出现的次数。然后外层循环从文本串中依次取下长度等于words中单词拼接后长度的子串,程序中为变量ps。内层循环从ps中每次截取一个单词,这时我们拷贝一份先前的hashmap,这个单词出现一次,就在hashmap的指定键值处减一,如果发生有一个值被减到小于0,则是一次失败的匹配,内层循环退出。同时,如果根本没有找到这个从

2016-02-23 19:14:05 333

原创 LeetCode29DivideTwoIntegers--In Java

主要采用的方法是:先不断通过移位操作找到divisor最接近dividend的倍数,如被除数是100,除数是3的话,这个倍数就是32。然后用100减去3的32倍,这里的32倍是通过左移产生,并没有用到乘法。这时,再用一个循环找到3的多少倍最接近于100和它32倍的差,即找到最接近于4的倍数,通过不断试探16倍,8倍,4倍。。。(通过右移),结果是1倍,为3。再重复做差的动作,去找最接近

2016-02-22 20:24:54 1388

原创 LeetCode27RemoveElement--In Java

用两个指针去扫,第一个指向要被覆盖的位置,第二个不断去找值不等于val的元素,每找到一个覆盖掉第一个指针的位置。public int removeElement(int[] nums, int val) { int N = nums.length; if(N==0) return 0; int index1 = 0; int index2 = 0; if(nums[i

2016-02-22 11:26:03 316

原创 Java3*3拼图小游戏--powered by dustin

终于用了2天时间写出了这个游戏,算是对事件处理和基本绘图的一种联系吧!至于更NB的功能以后会慢慢添加的,写出属于自己的作品方可谓“璀璨的是人生”! 废话我不多说了,首先介绍一下基本功能。是一个3*3的图像,素材我选了“德国总理调戏小机器人”这幅有趣的画面,之所以选这幅图有一个原因是图像分为9块之后每一块的特征都相当明显也就是说辨识度很高,这样是符合拼图的基本要求的。  写了这个程序我才发现即使一个

2016-02-22 09:45:00 4532 2

原创 java实现的俄罗斯方块游戏--powered by dustin

学习java时间不长,跟着学习视频敲过一个贪吃蛇的游戏代码,遂产生了仿写一个俄罗斯方游戏的想法。用了六天时间终于实现了最基本的功能,然而bug仍然很多,不过运行成功玩几局仍然很开森哇!期间遇到了很多难题,很伤脑筋,不过还是一个个地解决掉了,真心希望自己在学习java的路上能一直保持热情,keep fighting!! 在游戏中我使用了两个类(貌似不是最优的面向对象思维),一个是游戏的窗体Yard

2016-02-22 09:44:57 573

原创 LeetCode22GenerateParentheses--In Java

这个问题让人想到火车进站的次序问题,解的数量可以用卡特兰数求出。 因此我想到其实括号的排列和栈混洗的各个情况是一一对应的。 现有1、2、3三个数字,栈混洗后有123,132,213,231,321五种情况,312是不合法的。 而观察可以发现123这种情况对应着“()()()”这种情况,而132则对应着“()(())”这种情况,因为左括号代表一次入栈,右括号代表一次出栈,同理213就是“

2016-02-21 19:32:58 564

工程优化算法

代码采用c++语言编辑,包含了0.618法,牛顿法,二次插值等工优经典算法

2015-05-11

空空如也

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

TA关注的人

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