自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 static静态变量的理解

参考:http://www.cnblogs.com/haimeng2010/p/3265051.html静态变量 类型说明符是static。静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直到整个程序运行结束(相反,而auto自动变量

2015-05-04 12:53:08 563

原创 智能指针auto_ptr与shared_ptr详解

一.auto_ptr      auto_ptr是当前C++标准库中提供的一种智能指针,或许相对于boost库提供的一系列眼花缭乱的智能指针, 或许相对于Loki中那个无所不包的智能指针,这个不怎么智能的智能指针难免会黯然失色。诚然,auto_ptr有这样那样的不如人意,以至于程序员必须像使用”裸“指针那样非常小心的使用它才能保证不出错,以至于它甚至无法适用于同是标准库中的那么多的容器和一些算

2015-05-04 12:32:13 818

原创 MapReduce原理小结

先贴一份印度码农向他老婆解释MapReduce的文章,挺有意思的。昨天,我在Xebia印度办公室发表了一个关于MapReduce的演说。演说进行得很顺利,听众们都能够理解MapReduce的概念(根据他们的反馈)。我成功地向技术听众们(主要是Java程序员,一些Flex程序员和少数的测试人员)解释了MapReduce的概念,这让我感到兴奋。在所有辛勤的工作之后,我们在Xebia

2015-04-20 16:00:38 663

原创 2015腾讯实习生面试题后台开发岗

一面:       4月8号在实验室做了腾讯的笔试。乱七八糟的做,顺利水过笔试。13号收到面试短信,要求14号上午去华科附近的一家酒店面试。13号晚上看了一会面经,突然想起来明天还要上英语课讲ppt。也没什么心情看书了,早早的睡下了。14号早起先去实验室水了一份英语ppt,在课上草草的讲了讲,一看时间都已经接近10点20。我赶忙加快速度,奔向华科。       大概11点10分左右来到璞喻

2015-04-19 14:51:18 940

原创 操作系统复习小结

进程调度:保存处理机的现场信息、按某种算法选取进程、把处理机分配给进程。需要考虑的三个基本机制:排队器、分派程序、上下文切换。调度方式:非抢占式、抢占式(优先权、短进程优先、时间片原则)调度算法:FIFO、时间片轮转、多级反馈队列 引起进程调度的原因:正在执行的进程执行完毕或因发生某事件而不能再继续执行;执行中的进程因提出I/O请求而暂停执行;在进程

2015-04-12 20:53:37 550

原创 【Unix环境高级编程】sigprocmask函数与sigpending函数

sigprocmask函数:功能描述:设定对信号屏蔽集内的信号的处理方式(阻塞或不阻塞)。用法:#include int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);NOTE: If oldset is non-null, the previous value of the si

2015-03-11 11:03:49 561

原创 STL六大组件

STL提供六大组件,彼此可以组合套用:1、  容器(Containers):各种数据结构,如:vector、list、deque、set、map。用来存放数据。从实现的角度来看,STL容器是一种class template。2、  算法(algorithms):各种常用算法,如:sort、search、copy、erase。从实现的角度来看,STL算法是一种 function templa

2015-03-10 14:58:29 399

原创 auto_ptr智能指针不能作为STL标准容器的元素

参考:http://my.oschina.net/costaxu/blog/105101先从表象上看看这个问题,假如有这样的一段代码,是否能够运行?int costa_foo(){ vector > v(10); int i=0; for(;i<10;i++) { v[i]=auto_ptr(new int(i)); }

2015-03-09 20:16:31 674

原创 STL: trivial destructor

一、如果用户不定义析构函数,而是用系统自带的,则说明,析构函数基本没有什么用(但默认会被调用)我们称之为trivial destructor。反之,如果特定定义了析构函数,则说明需要在释放空间之前做一些事情,则这个析构函数称为non-trivial destructor。如果某个类中只有基本类型的话是没有必要调用析构函数的,delelte p的时候基本不会产生析构代码, 

2015-03-07 21:16:20 596

原创 C++ 内存分配(new,operator new)

本文主要讲述C++ new运算符和operator new, placement new之间的种种关联,new的底层实现,以及operator new的重载和一些在内存池,STL中的应用。一 new运算符和operator new():     new:指我们在C++里通常用到的运算符,比如A* a = new A;  对于new来说,有new和::new之分,前者位于std

2015-03-07 17:25:27 474

原创 Linux Shell脚本攻略(三)

一.find命令    1.根据文件名或正则表达式匹配搜索    2.基于目录深度的搜索 maxdepth mindepth3.根据文件类型搜索4.根据文件时间搜索 -atime(访问时间)-mtime(修改时间) -ctime(变化时间):   eg: find . -type f -atime -7 print (最近7天访问的文件)5.基于文件大小搜索 eg:fi

2015-03-07 11:37:11 462

原创 Linux Shell脚本攻略(二)

1.cat命令

2015-03-05 16:38:14 373

原创 Linux Shell脚本攻略(一)

1.终端打印命令:echo,转义字符,echo ${ }2.环境变量:通常是,未在当前进程中定义,而在父进程中继承而来的变量。                     cat /proc/$PID/environ 查看与pid进程相关的环境变量                     export命令用来设置环境变量。3.重定向操作符:stdin,stdout,stderr4.

2015-03-05 16:22:11 486

原创 【LeetCode】Flatten Binary Tree to Linked List

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

2015-03-05 11:49:30 359

原创 【LeetCode】Balanced Binary Tree

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

2015-03-05 11:06:39 328

原创 【LeetCode】Linked List Cycle II

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *de

2015-03-05 10:12:48 401

原创 【LeetCode】Linked List Cycle

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: bool hasCycl

2015-03-05 09:40:41 314

原创 【LeetCode】Partition List

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *pa

2015-03-04 10:34:01 396

原创 【LeetCode】Add Binary

class Solution {public: string addBinary(string a, string b) { int aindex = a.size() - 1; int bindex = b.size() - 1; string c; int flag = 0,num; while (aindex>=0 && bindex>=0) { nu

2015-03-04 09:46:26 526

原创 setjmp与longjmp

1.setjmp(j)设置“jump”点,用正确的程序上下文填充jmp_buf对象j。这个上下文包括程序存放位置、栈和框架指针,其它重要的寄存器和内存数据。当初始化完jump的上下文,setjmp()返回0值。2. 以后调用longjmp(j,r)的效果就是一个非局部的goto或“长跳转”到由j描述的上下文处(也就是到那原来设置j的setjmp()处)。当作为长跳转的目标而被调用时,setjm

2015-01-30 15:39:24 382

原创 互联网笔试机试经典--杨氏矩阵查找

定位法,时间复杂度O(m+n)。首先直接定位到最右上角的元素,再配以二分查找,比要找的数(6)大就往左走,比要找数(6)的小就往下走,直到找到要找的数字(6)为止,如下图所示://杨氏矩阵查找int col = 4;int row = 4;bool young(int array[][col],int search){ int i = 0, j = col - 1; int

2015-01-27 21:26:22 523

原创 美团网2014校招研发笔试哈尔滨站--链表翻转

1、链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,则翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6*/ListNode *reverseK(ListNode *head,int k){ ListNode *fakehead = new ListNode(0); ListNode *newhead

2015-01-20 21:57:05 747

原创 迅雷2014校招笔试编程题--求单链表的差集

/*已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。*/void Difference(ListNode **lista,ListNode *listb){ ListNode

2015-01-17 11:49:02 501

原创 我希望--舒婷

我希望  我希望,她,和我一样胸中有血,心头有伤。不要什么花好月圆,不要什么笛短箫长。 要穷,穷得像茶,苦中一缕清香。要傲,傲得像兰,高挂一脸秋霜。我们一样,就敢在暗夜里,徘徊在白色的坟场。去倾听鸱鴞的惨笑,追逐那飘移的荧光。我们一样,就敢在森林里,打下通往前程的标桩。 哪管枯枝上,猿伸长臂,何惧石丛里,蛇吐绿芒。 我们一样,就敢

2015-01-16 21:12:46 1152

原创 IO多路复用机制--select、poll、epoll & poll-wait

select,poll,epoll都是IO多路复用的机制。所谓I/O多路复用机制,就是说通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据

2015-01-14 15:12:11 549

原创 Linux内存分配小结--malloc、brk、mmap

Linux 的虚拟内存管理有几个关键概念: 1、每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址; 2、虚拟地址可通过每个进程上的页表(在每个进程的内核虚拟地址空间)与物理地址进行映射,获得真正物理地址; 3、如果虚拟地址对应物理地址不在物理内存中,则产生缺页中断,真正分配物理地址,同时更新进程的页表;如果此时物理内存已耗尽,则根据内存替换算法淘汰部分页面至物理磁

2015-01-14 14:54:35 33021 7

原创 【LeetCode】Search in Rotated Sorted Array II

class Solution {public: bool search(int A[], int n, int target) { int start = 0, end = n; while (start != end) { int mid = (start + end) / 2; if (A[mid] == target) return

2015-01-08 11:42:10 418

原创 【LeetCode】Search in Rotated Sorted Array

class Solution {public: int search(int A[], int n, int target) { int start = 0, end = n; while (start != end) { int mid = (start + end) / 2; if (A[mid] == target) return mid;

2015-01-08 11:39:31 316

原创 【LeetCode】Remove Element

class Solution {public: int removeElement(int A[], int n, int elem) { int result=0; for(int i=0;i<n;i++) { A[result]=A[i]; if(A[i]!=elem)

2015-01-07 20:08:57 292

原创 【LeetCode】Remove Nth Node From End of List

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *re

2015-01-07 20:03:25 297

原创 【LeetCode】Merge Sorted Array

class Solution {public: void merge(int A[], int m, int B[], int n) { int ia=m-1,ib=n-1,result=m+n-1; while(ia>=0&&ib>=0) { A[result--]=A[ia]>=B[ib]?A[ia--]:B[i

2015-01-07 17:23:23 276

原创 【LeetCode】Construct Binary Tree from Inorder and Postorder Traversal

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

2014-12-30 16:57:09 303

原创 【LeetCode】Symmetric Tree

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

2014-12-30 16:28:12 311

转载 C++ 内存分配(new,operator new)详解

本文主要讲述C++ new运算符和operator new, placement new之间的种种关联,new的底层实现,以及operator new的重载和一些在内存池,STL中的应用。一 new运算符和operator new():     new:指我们在C++里通常用到的运算符,比如A* a = new A;  对于new来说,有new和::new之分,前者位于std 

2014-12-29 22:07:38 606

原创 【LeetCode】Same Tree

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

2014-12-29 15:53:23 272

原创 【LeetCode】Trapping Rain Water

class Solution {public: int trap(int A[], int n) { vector left(n); int maxheight = 0; for (int i = 0; i < n; i++) { left[i] = maxheight; maxheight = max(maxheight, A[i]); } vecto

2014-12-29 15:13:27 336

原创 【LeetCode】Container With Most Water

class Solution {public: int maxArea(vector &height) { int start = 0; int end = height.size() - 1; int result = INT_MIN; while (start < end) { int tmp = min(height[start], height[end

2014-12-29 11:53:58 261

原创 【LeetCode】3Sum Closest

class Solution {public: int threeSumClosest(vector &num, int target) { sort(num.begin(), num.end()); int ret; bool first = true; for (int i = 0; i < num.size(); i++) { int start = i

2014-12-29 11:31:24 275

原创 【LeetCode】Reorder List

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *li

2014-12-28 17:16:24 289

原创 【LeetCode】Rotate List

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *ro

2014-12-28 16:27:37 277

空空如也

空空如也

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

TA关注的人

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