自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Sublime的配置与使用

1、下载https://www.sublimetext.com/3dev 下载deb包2、激活http://appnee.com/sublime-text-3-universal-license-keys-collection-for-win-mac-linux/ 获取激活码3、安装插件安装插件管理功能在sublime中按ctrl+`调出控制台面板,输入以下...

2018-09-01 11:43:15 526

原创 Unix/Linux编程实践教程笔记【chap14】

线程的直观定义 线程对于函数就类似于进程相对于程序,后者为前者提供了运行的环境。线程使得很多函数可以在同一进程内并发执行。创建进程pthread_create(头文件...

2018-07-02 16:48:30 205

原创 Unix/Linux编程实践教程笔记【chap15】

1、进程通过文件进行通信,可能出现的竞态条件是一个进程的写还没结束另一个进程就读,导致读取错误内容,这时候需要用锁机制来回避这种问题。 2、命名管道(FIFO)可以连接不相关的进程,并且可以独立于进程存在。...

2018-06-06 15:15:25 257

原创 Unix/Linux编程实践教程笔记【chap01】

/dev/tty /dev/tty是键盘和显示器的设备描述文件,向这个文件写相当于显示在屏幕上,向这个文件读相当于从键盘读取输入,即使程序用’<’和‘>’重定位了标准输入和输出,依然可以通过这个文件和终端交换数据。more01.cpp:/*more01.cpp - version 0.1 of more read and print 24 lines then pau...

2018-05-20 19:39:16 243

原创 c++的四种强制类型转换

const_cast:从字面意思上就可以理解,去除变量的const属性。 static_cast:静态类型转换,一般用于基本类型间的转换,如char->int dynamic_cast:动态转换,同于多态之间的类型转换 reinterpret_cast:用于不同类型的指针类型的转换。const_castint main(int argc,char** argv){ ...

2018-04-09 10:42:34 488

原创 leetcode 1:two sum

给定一个数组和一个目标数字target,返回数组中的两个下标,这两个下标对应的数字的和为target。(约定数组中满足要求的数字对是唯一的,每个数组只能使用一次) 例子: Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].解题...

2018-04-03 14:15:10 153

原创 树的直径(树中最长路)的计算

树是一个连通图的结构,我们定义树中最长的路径为树的直径。算法思路对于边没有权重的树,我们可以从任意一点u出发进行广度优先搜索(bfs),找到离u最远的点s,s是最长路径的一个端点。以s为起点,再用一次bfs找到距离s最远的点t,则路径s-t为树中最长的路径,即树的直径。证明证明的思路主要是使用反证法。假设s-t为最长路径。若u在s-t路径上 若离u最远的点s’不在s...

2018-04-03 11:09:41 1517

原创 《剑指offer》面试题6:从尾到头打印链表

输入一个链表的头结点,从尾到头反过来打印出每个节点的值。链表节点定义如下: struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };解题思路1因...

2018-04-03 10:11:12 120

原创 《剑指offer》面试题5:替换空格

题目:实现一个函数,将字符串中的每个空格替换成字符串“%20”。解题思路1使用暴力的方法,从左到右扫描一遍,当遇到空格时就把空格替换成“%20”,然后把空格后面的字符都后移2个位置。由于需要整个字符串扫描一遍,时间为O(n),替换空格时移动字符的时间复杂度为O(n),因此总的时间复杂度为O(n^2)。解题思路2因为每个空格会替换成一个三个字符的字符串,因此替换后的新字符...

2018-04-02 16:33:40 145

原创 《剑指offer》面试题4:二维数组中的查找

题目:在一个二维数组中,每一行都从左向右递增,每一列都从上到下递增。给定一个数target,判断这个数是否出现在二维数组中。解题思路如果使用暴力搜索整个数组的话时间复杂度是O(n^2),比较不理想,那么有没有更快地方法呢?观察如下数组1 2 8 92 4 9 124 7 10 136 8 11 15我们可以发现,在...

2018-04-02 15:44:11 197

原创 《剑指offer》面试题3:数组中重复的数字

题目1:在一个长度为n的数组中所有数字的范围都在0~n-1的范围内,找出任意一个重复的数字,不存在的话返回-1。解题思路1先将数组排序,排序后重复的数字就会在相邻的位置,那么只要扫描一遍数组,对比相邻的数字就可以找出重复的数字。排序时间复杂度是O(nlogn),扫描数组复杂度是O(n),因此总的时间复杂度是O(nlogn),空间复杂度O(1),需要改变原数组。int d...

2018-04-01 11:26:55 188

原创 《剑指offer》面试题2:实现Singleton模式

题目:设计一个类,我们只能生成该类的一个实例。思路一个类要只能生成一个实例,那就需要将构造函数私有化,就能防止在外部调用构造函数生成新的实例,通过使用静态成员变量使得外部可以调用这个唯一实例。单例设计模式是经典的设计模式,常用的实现方法有懒汉模式和饥汉模式。懒汉模式是在需要使用实例的时候才创建,而饥汉模式则是从一开始就将实例生成出来。下面是饥汉模式的一个实现。class...

2018-03-31 22:37:48 135

原创 《剑指offer》面试题1:赋值运算符函数

题目的要求是为如下的类型添加赋值运算符函数class CMyString{public: CMyString(char* pData=nullptr); CMyString(const CMyString& str); ~CMyString(void);private: char* m_pData;};需要注意的点赋值运...

2018-03-28 16:14:20 189

原创 欧拉函数的实现

欧拉函数的实现 定义1 :设R是模n的的一个剩余类,若有 aϵRaϵRa\epsilon R,使得gcd(a,n)=1,则称R是n的一个简化剩余类。 定义2 :对于正整数k,令函数φ(k)φ(k)\varphi \left ( k \right )的值等于模k的所有简化剩余类个数,称φ(k)φ(k)\varphi \left ( k \right )为欧拉函数。从直观上将,欧拉...

2018-03-26 23:08:05 375

原创 TCP三次握手、四次挥手及中间的11种状态

三次握手最开始时服务器等待连接,处于监听状态(1)LISTEN客户端发出SYN请求,自身编程(2)SYN_SEND状态服务器收到SYN请求,回复ACK并发送SYN进行同步,自身进入(3)SYN_RCVD状态客户端收到服务器的ACK,进入连接状态(4)ESTABLISHED,并回复ACK给服务器服务器收到ACK,也进入连接状态(4)ESTABLISHED,三次握手结束,双方正式建立连接...

2018-03-23 10:23:26 587

原创 ubuntu安装nvidia显卡驱动

ubuntu安装nvidia显卡驱动

2017-04-05 15:04:56 1907

原创 ubuntu搜狗输入法故障解决

ubuntu下搜狗输入法故障解决

2017-04-05 14:24:02 746

原创 ubuntu安装Python虚拟环境

ubuntu下使用virtualenv建立python虚拟环境

2017-03-25 15:00:14 531

原创 ubuntu添加新用户

ubuntu下创建、删除用户以及授予用户权限的方法

2017-01-11 15:04:17 16704

原创 ubuntu16下django+apache配置

本文是在ubuntu16.04下用apache2框架部署django项目的过程记录。

2016-12-15 09:03:04 720

原创 Ubuntu环境下使用g++编译cpp文件

  第一次用g++编译cpp文件的时候报了undefined reference的错误,自定义类中的函数全部都无法找到,查找资料后发现调用的类是需要链接的,本文以一个小例子描述编译的过程。其中class2类调用了class1类的成员函数,依赖于class1类,而test文件调用了class2类的成员函数,依赖于class1类。//class1.h#ifndef _CLASS1_H#de...

2016-12-08 15:16:11 2432

原创 用swig为python定制自定义模块

引言Swig安装Swig使用例子引言  因为python是解释性的语言,所以在计算上其效率会有很大的瓶颈,所以在设计大型计算时我们往往不会直接用python实现,而是使用更高效的语言来完成计算的过程(比如矩阵运算我们往往会借用numpy库来高效实现),那么我们能不能自己用其他语言来实现复杂的计算过程,编译成库在python中调用了?答案是肯定可以的,而且这种做法往往是必须的。在本文中我将借助sw

2016-12-07 16:44:26 813

原创 python表单提交

python写爬虫模拟表单提交的库其实又很多,我使用的是Requests库进行简单的表单提交。Requets 库安装方式:sudo pip install requests一、无文件的表单提交        对于无文件的提交,我们只需要查看目标网页表单各元素的名字和我们要提交的值,然后写成一个结构体提交上去就可以了,比如下面的html代码。 识别语言: 输出语言:

2016-11-11 14:31:41 14412 2

原创 win7+ubuntu16.04双系统安装

不得不承认做开发ubuntu比windows有更多的便利和优势,所以往往双系统是必不可少的。之前我一直偷懒用虚拟机跑ubuntu,但是虚拟机和win7系统都会占用不少cpu和内存资源,所以用起来很不爽,所以还是装个双系统吧。我使用的是ubuntu16.04的镜像,用的工具是easybcd2.2版本。镜像和工具可在以下网址下载:http://pan.baidu.com/s/1o8gyp3W,提取码为

2016-10-04 09:57:58 757

原创 Android获取本地图片

光讲理论太单调,配上demo食用本文更佳:Github    在很多时候我们需要读取到手机本地的图片,当我们要设置头像、用自定义图片进行拼图等情况都需要用到,所以学会读取手机本地图片是很实用的。在《第一行代码》中有读取本地图片并且进行切割的实例,如下 Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);

2016-05-05 23:21:09 898

原创 ural 1013. K-based Numbers. Version 3

       在这道题的版本三改了之后难度确实提高了不少,但是这道题也确实很有代表性。第一个版本是直接算,第二个版本是高精度,这个版本是10^18的量级,不可能直接算,需要使用矩阵乘法并用矩阵快速幂降低计算次数至logN量级。    动归的状态转移和前两个版本一样就不提了,主要用到的是矩阵快速幂以及边算边取模保证不爆long long,至于为什么可以边算边取模,不清楚的朋友可以看下数论相关的内容。...

2016-03-24 18:32:16 801

原创 ural 1078.Srgments

      很模板的一道动归题,看过跟蓝书里的那道矩形嵌套的例题是一样的,就是换个包装而已。两个线段之间的关系要么能嵌套,要么不能,这种二值的属性一般可以考虑用有向图来表示,而且它不可能互相嵌套,所以无环,故转化成DAG问题,这道题变成求DAG上的最长路径。    用一维的dp数组就可以表示,dp[u]表示以i号点为起点的最长路径长度,然后用记忆化搜索对每个点都算一遍,找到最大的值就是最长路径长度...

2016-03-24 11:16:20 349

原创 Ural 1223.Chernobyl’ Eagle on a Roof

  题目的大意是有x(1<=x<=1000)个强度相同的蛋,有一座有y(1<=y<=1000)层的楼,蛋的强度为E(0<=E<=y),在i层把蛋扔下楼,若E<i则蛋碎一地,否则不会碎,可以继续用于实验。要求求解在最坏的情况下至少需要扔多少次才能确定蛋的强度。 很裸的动归题,最容易想的就是开个二维数组,dp[x][y]表示用x个蛋在y层楼高的楼测试最坏情况下...

2016-03-23 23:03:58 636

原创 Kaggle入门

由于选修了数据挖掘课程,课程作业是完成Kaggle上的一个比赛,所以在机缘巧合下就知道了Kaggle这个平台,事实上我认为这是用来练手数据挖掘的一个绝佳场所。这篇文章适合和我一样刚接触Kaggle的朋友,对于已经熟悉这个平台的朋友,欢迎指出我的错误,必定虚心受教。本文分为两个部分,第一部分简单介绍在上面完成比赛的流程,第二部分以手写数字识别为例子详细描述完成比赛的整个过程。1、Kaggle

2016-03-22 09:59:08 22016

原创 2016-3-5

活动的生命周期   Android使用任务(Task)来管理活动,一个任务就是存放在返回栈中的活动的集合。栈是后进先出的结构,系统总是显示位于栈顶的活动,当一个活动调用finish时就会出栈。 活动的状态   1、运行状态:位于栈顶的活动,系统最不愿意收回这种活动的资源   2、暂停状态:不再栈顶的活动,但是因为栈顶活动的大小缘故而仍然可见的活动,因为仍然可见所以系统也一般不会

2016-03-06 18:41:56 307

原创 2016-3-4

更多的隐式intent的用法   隐式intent除了可以启动本程序中的活动,还可以启动其他程序的活动。Action设为Intent.ACTION_VIEW是Android的内置动作,调用Uri.parse()方法将网址字符串解析成一个Uri对象,再调用Intent的setData()方法将Uri对象传递进去就可以用系统的浏览器打开指定网址。  Intent的setData方法的参数是一个

2016-03-05 00:03:47 274

原创 2016-3-3

使用Intent在活动间交替显式Intent   Intent有两个参数,第一个是启动活动的上下文,第二个是要启动的活动。   Activity类中提供一个startActivity()方法用于启动活动,它接受一个Intent参数。button1.setOnClickListener(newView.OnClickListener() {    @Override   

2016-03-03 23:40:23 300

原创 2016-3-2

Android大致可分为四层结构,五块区域。1、Linux内核层基于Linux2.6内核。2、系统运行库层    库和运行时库。3、应用框架层提供相应的API。4、应用层所有手机应用都属于这一层。  Android应用开发特色1、四大组件活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)、内容提供器

2016-03-02 23:21:24 279

原创 Gvim的详细配置

今天一时兴起想要装个Gvim来打代码,但是发现网上的配置教程几乎都是一字不差的复制粘贴而且又是年代久远,里面那些www.vim.org的文件都下不了(好像因为现在要翻墙了的缘故,几年前貌似不用),所以找齐所需的文件还是比较麻烦的,而且里面有一些地方讲得并不是十分的清楚,就发这篇博文来详细介绍一下怎么配置Gvim跟大家分享一下。

2015-05-02 16:37:16 4554

gVim及其插件

这是配套我博客Vim配置的所有文件,包含Vim的安装程序,a.vim,grep.vim等插件以及一些所需的软件配置。

2015-05-02

空空如也

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

TA关注的人

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