自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 PageRank算法与特征向量和特征值(eigenvector和eigenvalue)

1. PageRank算法概述         PageRank,即网页排名,又称网页级别、Google左侧排名或佩奇排名。        是Google创始人拉里·佩奇和谢尔盖·布林于1997年构建早期的搜索系统原型时提出的链接分析算法,自从Google在商业上获得空前的成功后,该算法也成为其他搜索引擎和学术界十分关注的计算模型。目前很多重要的链接分析算法都是在PageRank算法基础上

2014-05-15 16:57:45 9729

原创 关于写代码时的边界

边界条件:说起来容易,写的时侯会发现很容易落掉的。如输入参数是指针类型:NULL的检查如数组和容器类:是否为空,或长度是否为1...//嵌套容易的元素长度是否为0以及string 类型:长度是否为0,1判断条件=的时侯>和=的判断是否应该一样.

2013-12-09 23:51:44 897

原创 Leetcode You have solved 131 / 150 problems.

status

2013-12-01 22:08:58 492

原创 leetcode Largest Rectangle in Histogram

pending

2013-12-01 22:08:22 451

转载 C++ singleton

Singleton模式是常用的设计模式之一,但是要实现一个真正实用的设计模式却也不是件容易的事情。1.         标准的实现class Singleton{public:       static Singleton * Instance()       {              if( 0== _instance)              {

2013-11-18 21:55:43 730

转载 select,poll和epoll使用

多路转接当从一个文件描述符读,然后写到另一个文件描述符,可以在下列形式的循环中使用阻塞IO。while((n= read(STDIN_FILENO, buf, BUFSIZ))> 0)    if(write(STDOUT_FILENO, buf, n)!= n)        err_sys("write error");

2013-11-17 22:17:47 578

原创 Unix下分5种基本的I/O模型

Unix下分5种基本的I/O模型:1.阻塞I/O2.非阻塞I/O3.I/O复用(select和poll)4.信号驱动I/O(SIGIO)5.异步I/O(POSIX.1的aio_系列函数)Unix中一个输入操作一般有两个不同的阶段:1.等待数据准备好。2.从内核到进程拷贝数据。对于一个sockt上的输入操作,第一步一般是等待数据到达网络,当分组到达时,它被拷贝到内

2013-11-17 22:13:29 619

转载 linux僵死进程

一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁, 而是留下一个称为僵死进程(Zombie)的数据结构(系统调用exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵死进程,并不能将其完全销毁)。一、僵死进程的产生    在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等,但是仍然为其保留一定的信息(包括进程号the pro

2013-11-17 22:13:04 654

转载 TCP3次握手/4次握手

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。  (1) 第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。 (2) 第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_R

2013-11-17 21:24:29 581

原创 C++虚继承时内存布局

http://wenku.baidu.com/view/a516063567ec102de2bd894f.htmlhttp://wenku.baidu.com/view/fb5528345a8102d276a22f3e.html

2013-10-22 13:08:55 373

原创 leetcode online-judge PASS 已经超过50%,争取半个月内把剩余的做完

加油!

2013-10-22 09:13:21 453

转载 最长递增子序列 (Longest Increasing Subsequence)

问题描述: 给定一个序列 An =a1,a2,  ... , an,找出最长的子序列使得对所有 i j,ai aj。显然,暴力算法的时间复杂度是 O(2n),因为搜索空间呈指数级增长。对于这种问题,如果要找复杂度为多项式时间的算法,自然而然地会想到动态规划。首先,要找出一种方法把该问题分解成只有多项式个子问题。考虑an。如果最长递增子序列不包含 an,则问题变成要在An-1 中

2013-10-22 09:11:28 514

原创 C++公有继承(public)、私有继承(private)、保护继承(protected)详解

公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。2. 私有继承(private)私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不

2013-10-21 22:32:42 1454

原创 reinterpret_cast

reinpreter_cast (expression)type-id 必须是一个指针、引用、算术类型、函数指针或者成员指针。它可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针(先把一个指针转换成一个整数,在把该整数转换成原类型的指针,还可以得到原先的指针值)。2用法该运算符的用法比较多。操作符修改了操作数类型,但仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换

2013-10-21 16:39:23 537

原创 static_cast

static_cast用法:static_cast ( expression )该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成派生类表示)时,

2013-10-21 16:35:11 458

原创 dynamic_cast

dynamic_cast ( expression )该运算符把expression转换成type-id类型的对象。Type-id必须是类的指针、类的引用或者void*;如果type-id是类指针类型,那么expression也必须是一个指针,如果type-id是一个引用,那么expression也必须是一个引用。dynamic_cast运算符可以在执行期决定真正的类型。如果do

2013-10-21 16:33:17 507

原创 leetcode Copy List with Random Pointer

class Solution {public:    RandomListNode *copyRandomList(RandomListNode *head) {        // Note: The Solution object is instantiated only once and is reused by each test case.              

2013-10-18 13:29:07 756

转载 C++ 虚函数表解析

From http://blog.csdn.net/haoel/article/details/1948051/  前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算

2013-10-18 13:28:20 397

转载 c++(重载、覆盖、隐藏)

http://www.cnblogs.com/qlee/archive/2011/07/04/2097055.html成员函数的重载、覆盖与隐藏成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。8.2.1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数

2013-10-15 22:55:56 391

原创 Leetcode Remove Duplicates from Sorted Array

Remove Duplicates from Sorted ArrayAC Rate: 808/2368My SubmissionsGiven a sorted array, remove the duplicates in place such that each element appear onlyonce and return the new length.Do

2013-10-01 17:57:46 442

原创 leetcode Convert Sorted List to Binary Search Tree

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; *//** * Definition for binary tre

2013-09-26 21:44:45 471

原创 Leetcode rotate integer

Reverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321class Solution {public:    int reverse(int x) {        // Start typing your C/C++ solution be

2013-09-26 21:28:49 438

原创 leetcode Letter Combinations of a Phone Number

Letter Combinations of a Phone NumberJan 27 '125504 / 16698Given a digit string, return all possible letter combinations that the number could represent.A mapping of digit to letters (just like on

2013-09-26 21:28:29 584

原创 leetcode String to Integer (atoi)Dec 27 '117626 / 35090

String to Integer (atoi)Dec 27 '117626 / 35090Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below

2013-09-26 21:27:18 575

原创 Leetcode rotate list

class Solution {public:    ListNode *rotateRight(ListNode *head, int k) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        ListNode * newhea

2013-09-26 21:27:01 378

原创 Leetcode sortedArrayToBST

/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */cla

2013-09-26 21:25:39 453

原创 LeetCode Flatten Binary Tree to LinkedList

Given a binary tree, flatten it to a linked list in-place.For example,Given 1 / \ 2 5 / \ \ 3 4 6The flattened tree should look like: 1 \

2013-09-26 21:24:59 503

原创 test

strstok

2013-09-05 23:06:41 406

原创 全排序的递归与非递归的实现

(一)递归的全排列算法(A、B、C、D)的全排列为1、A后面跟(B、C、D)的全排列2、B后面跟(A、C、D)的全排列3、C后面跟(A、B、D)的全排列4、D后面跟(A、B、C)的全排列而对1中的(B、C、D)照样可以按照上面的形式进行分解。[cpp] view plaincopy/********************************

2013-09-01 15:19:24 554

转载 谷歌技术"三宝"之MapReduce

http://blog.csdn.net/opennaive/article/details/7514146江湖传说永流传:谷歌技术有"三宝",GFS、MapReduce和大表(BigTable)!谷歌在03到06年间连续发表了三篇很有影响力的文章,分别是03年SOSP的GFS,04年OSDI的MapReduce,和06年OSDI的BigTable。SOSP和OSDI都是操作系统领域的

2013-08-24 13:52:00 653

原创 最短路径Dijkstra算法实现

最近在复习以前数据结构的知识,找了一些练习题做做。最短路径和最小生成树和思想有类似的地方,基本都是贪心算法。直接上代码吧,有不合适的地方希望大家指正。多谢!typedef struct{    int distance;    std::list path;} PATH;//single point, void ShortestPath(int p[][6]

2013-08-17 14:58:39 478

转载 经典面试,链表相关的问题

http://blog.csdn.net/hackbuteer1/article/details/75831021、 给出两个单向链表的头指针pHead1和pHead2,判断这两个链表是否相交。假设两个链表均不带环。 示意图如下:如果两个链表相交于某一节点,那么在这个相交节点之后的所有节点都是两个链表所共有的。也就是说,如果两个链表相交,那么最后一个节点肯定是共有的。先遍历第一个链

2013-08-11 16:05:22 543

原创 Tree2List二叉树转双向链表的实现

这道微软面试题是我在多年以前参加微软面试的时侯被问到的,当时没有做出来。这些天在关注http://v_july_v.的博客中微软面试一百题,想再重新都做一遍。问题描述:Tree2List二叉树转双向链表解决方案:很显然是一道考察递归的问题,那么既然要递归一颗二叉树,无非也就常用的先序,中序和后序遍历。现在看来我觉得用哪一种遍历都可以实现。

2013-08-10 08:58:11 769

转载 Linux环境进程间通信-信号

信号http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html信号本质 信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一

2013-08-04 23:06:43 492

转载 白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖

http://wenda.tianya.cn/wenda/thread?tid=758a1e447e62b7df&hl=ja 白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视。白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试。因为对于不同复杂度的代码逻辑,可以衍生出许多种执行路径,只有适当的测试方法,才能帮助我们

2013-08-04 15:18:34 2247

原创 unix进程区消息队列学习笔记

unix系统中进程可以通过消息进行通信,消息是格式化的可变长度的信息单元,包含消息类型、数据长度及数据三部分内容。每个消息都有一个唯一的名称key,同时还有一个唯一的消息队列描述符。    消息队列的使用:1、建立:    调用: int msgget(intkey,int flags);   key为消息队列名称,flags为用户设置标志,一般设置消息队列的访问权限等,权限取值如

2013-08-03 22:14:49 596

转载 对话UNIX:通过共享内存进行进程间通信

2012-07-20 04:08 335人阅读 评论(0)收藏 举报从表面上看,UNIX应用程序单独控制底层主机。它随时可以访问处理器,它的内存是神圣不可侵犯的,连接它的设备只为它服务。但是表面现象会骗人,这样有如君主一般的绝对地位只是幻想而已。UNIX系统同时运行大量应用程序,有限的物理资源要在它们之间共享。处理器能力被划分为时间片,应用程序映像经常被换入和换出真实内存,

2013-08-03 22:11:49 538

原创 unix进程间的通信方式

(1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。(2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。(3)信号(Signal):信号是比较

2013-08-03 22:11:10 526

原创 unix 环境中线程间通方式整理

线程间通信常见的同步方式有:互斥锁、条件变量、信号量、管通。另外,对于进程间的同步,也可以通过进程间通信的方式进行同步,包括管道(无名管道、有名管道)、信号量、消息队列、共享内存、远程过程调用,当然也可以通过Socket来进行网络控制。一、 互斥量(Mutex)通常互斥量和条件变量在多线程中是一块使用的。二、 条件变量http://blog.chinauni

2013-08-03 22:08:27 594

转载 Linux系统中,main函数的执行过程

How main() is executed on Linux  http://linuxgazette.net/issue84/hawk.html  /http://blog.csdn.net/rrerre/article/details/67284311. 问题:linux如何执行main函数。    本文使用一个简单的C程序(simple.c)作为例子讲解。代码如下,

2013-07-21 20:18:24 1216

空空如也

空空如也

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

TA关注的人

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