06 2015 档案
摘要:poll/select/epoll 对比 http://www.cnblogs.com/apprentice89/p/3234677.html 有待继续学习 http://blog.chinaunix.net/uid-20384806-id-1954307.html 有待继续学习 select和po
阅读全文
摘要:mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么...
阅读全文
摘要:Givennpoints on a 2D plane, find the maximum number of points that lie on the same straight line.Hide TagsHash TableMath给出平面上的点,问一条直线最多穿过几个点.要不是之前看过这个...
阅读全文
摘要:Sort a linked list using insertion sort.Hide TagsLinked ListSort分析:把链表分成两部分:排好序的和为排序的,排好序的以NULL结尾,cur插在preInsertion和insertion之间,next保存cur->next. 另外...
阅读全文
摘要:Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations:getandset.get(key)- Get the valu...
阅读全文
摘要:Given a singly linked listL:L0→L1→…→Ln-1→Ln,reorder it to:L0→Ln→L1→Ln-1→L2→Ln-2→…You must do this in-place without altering the nodes' values.For exam...
阅读全文
摘要:计算机系统的抽象基础---进程、虚存和文件。进程抽象:操作系统内核的主要任务之一就是讲处理器“虚拟化”,制造每一个运行进程都独自拥有一个处理器的假象。虚存抽象:进程拥有一个硕大的联系地址空间。而且进程的虚拟主存空间彼此隔离,具有很好的安全性。文件抽象:除处理器和主存职位,将磁盘和其他外部设备资源都抽...
阅读全文
摘要:Given a linked list, return the node where the cycle begins. If there is no cycle, returnnull.Follow up:Can you solve it without using extra space?Hid...
阅读全文
摘要:Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?Hide TagsLinked ListTwo Pointers分析:经典的快慢指针...
阅读全文
摘要:memmove和memcpy1.memmove函数原型:void *memmove(void *dest, const void *source, size_t count)返回值说明:返回指向dest的void *指针参数说明:dest,source分别为目标串和源串的首地址。count为要移动的...
阅读全文
摘要:给定两个有序数组arr1和arr2,在给定一个整数k,返回两个数组的所有数中第K小的数。例如:arr1 = {1,2,3,4,5};arr2 = {3,4,5};K = 1;因为1为所有数中最小的,所以返回1;arr1 = {1,2,3};arr2 = {3,4,5,6};K = 4;因为3为所有数...
阅读全文
摘要:给定两个有序数组arr1和arr2,两个数组长度都为N,求两个数组中所有数的上中位数。例如:arr1 = {1,2,3,4};arr2 = {3,4,5,6};一共8个数则上中位数是第4个数,所以返回3。arr1 = {0,1,2};arr2 = {3,4,5};一共6个数则上中位数是第3个数,所以...
阅读全文
摘要:给定一棵完全二叉树的头节点head,返回这棵树的节点个数。如果完全二叉树的节点数为N,请实现时间复杂度低于O(N)的解法。分析:遍历的话不管是前序、中序、后序还是层次都是O(N),低于O(N)只能是O(lgN),向二分方向努力。完全二叉树:除最后一层外,每一层上的节点数均达到最大值;在最后一层上只缺...
阅读全文
摘要:给定一个double类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积。例如arr=[-2.5,4,0,3,0.5,8,-1],子数组[3,0.5,8]累乘可以获得最大的乘积12,所以返回12。分析,是一个dp的题目,设f[i]表示以i为结尾的最大值,g[i]表示以i结尾的最小值,那...
阅读全文
摘要:定义局部最小的概念。arr长度为1时,arr[0]是局部最小。arr的长度为N(N>1)时,如果arr[0] arr) { if(arr.size() == 0) return -1; if(arr.size...
阅读全文
摘要:Given a binary tree, imagine yourself standing on therightside of it, return the values of the nodes you can see ordered from top to bottom.For exampl...
阅读全文
摘要:C/C+中的每一个常亮(every literal)都是有类型的,例如10 就是int型的,因此siziof(10)和sizeof(int)是相同的,但是字符型常亮(‘a’)在C和C++中有不同的变量类型。在C中,‘a’被认为是int形,在C++中,‘a’被认为是char型。int main(){ ...
阅读全文
摘要:http://www.geeksforgeeks.org/extern-c-in-c/C++函数重载(function overloading),但是C++编译器是如何区分不同的函数的呢?----是通过在函数名是加些信息来区不同的函数,即所谓的Name Mangling。C++标准并没有对name ...
阅读全文
摘要:http://www.geeksforgeeks.org/write-c-program-wont-compiler-c/1) C++中在函数声明之前调用一个函数会引发错误,但是在C中有可能可以。 参考http://www.cnblogs.com/diegodu/p/4580292.html下面的程...
阅读全文
摘要:http://www.geeksforgeeks.org/g-fact-95/1 在C语言中,如果函数在声明之前被调用,那么编译器假设函数的返回值的类型为INT型,所以下面的code将无法通过编译:#include int main(void){ // Note that fun() is n...
阅读全文
摘要:Follow upfor "Find Minimum in Rotated Sorted Array":What ifduplicatesare allowed?Would this affect the run-time complexity? How and why?Suppose a sort...
阅读全文
摘要:https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e.,0 1...
阅读全文
摘要:这个问题的关键是理解 &a a是一个数组名,也就是数组的首地址。对a进行取地址运算符,得到的是一个指向数组的指针!!!!这句话尤为重要!也就相当于int (*p) [5] = &a;p是一个指针,它指向的是一个包含5个int元素的数组!!那么执行p+1后,p的偏移量相当于 p + sizeof(in...
阅读全文
摘要:题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。用stack导两次就变成顺序了,来了数据都放在stack1中,输出时,stack2中有数据直接输出,没有数据,从stack1中导入数据到stack2 中class Solution{ public: ...
阅读全文
摘要:题目描述输入一个链表,从尾到头打印链表每个节点的值。返回新链表的头结点。方法一:用stack,或者最好vector.reverse vector printListFromTailToHead(struct ListNode* head) { sta...
阅读全文
摘要:跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。class Solution { public: int jumpFloor(int number) { if(number == 1) ...
阅读全文
摘要:题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。分析:个人理解,应该是对空间复杂度有要求,如果没有要求,下面code就OKclass Solution { public: ...
阅读全文
摘要:题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分析:从数组的右上角开始,若等于指定数字返回true,若大于指定数字则去掉该列,若小于指定数字则去掉该行。以此类推,不断缩小范...
阅读全文
摘要:转载 http://www.cnblogs.com/dolphin0520/p/3749259.html1.FIFO算法 FIFO(First in First out),先进先出。其实在操作系统的设计理念中很多地方都利用到了先进先出的思想,比如作业调度(先来先服务),为什么这个原则在很多地方都会...
阅读全文
摘要:实现线程同步的几种手段: 二元信号量: 一种最简单的锁,只有两种状态 占用和非占用 适合只能被一个线程独占访问的资源 多元信号量(信号量): 一种初始化为N的信号量 允许最多N个线程对资源进行同时访问 互斥量: 和二元信号量类似,但是它只能用于实现对某个资源的独立访问 ...
阅读全文
摘要:转 http://www.cnblogs.com/bangerlee/archive/2012/02/20/2356818.html引言“Oops,系统挂死了..."“Oops,程序崩溃了..."“Oops,命令执行报错..."对于维护人员来说,这样的悲剧每天都在上演。理想情况下,系统或应用程序的错...
阅读全文
摘要:Given a stringsand a dictionary of wordsdict, add spaces insto construct a sentence where each word is a valid dictionary word.Return all such possibl...
阅读全文
摘要:基于http://www.cnblogs.com/diegodu/p/4555018.html operator new的知识基础上 介绍这个章节的内容对于一般直接 new 与delete 性能较差,可以自己管理写内存的申请与释放。其实一般的operator new 和operator delete...
阅读全文
摘要:http://www.younfor.com/cpp-new-placement-new-operator-new.htmlhttp://www.cnblogs.com/luxiaoxun/archive/2012/08/10/2631812.htmlhttp://kelvinh.github.io...
阅读全文
摘要:Clone an undirected graph. Each node in the graph contains alabeland a list of itsneighbors.OJ's undirected graph serialization:Nodes are labeled uniq...
阅读全文
摘要:内存管理模块是操作系统的心脏;它对应用程序和系统管理非常重要。今后的几篇文章中,我将着眼于实际的内存问题,但也不避讳其中的技术内幕。由于不少概念是通用的,所以文中大部分例子取自32位x86平台的Linux和Windows系统。本系列第一篇文章讲述应用程序的内存布局。在多任务操作系统中的每一个进程都运...
阅读全文