自定义博客皮肤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)
  • 收藏
  • 关注

原创 leetcode Add and Search Word - Data structure design

题目Design a data structure that supports the following two operations:void addWord(word) bool search(word) search(word) can search a literal word or a regular expression string containing only letters

2015-05-30 22:38:25 1661 1

原创 linux创建新进程的过程

在进程中调用fork()来创建子进程。fork()进一步调用do_fork(),要完成任务有: 1. 在内存空间为新进程分配任务结构体使用的空间,然后把当前进程的任务结构体的所有内容拷贝到子进程的任务结构体中; 2. 为新进程在其虚拟内存建立内核堆栈; 3. 对于新进程任务结构体中的部分内容进行初始化设置,例如,进程的链接关系,包括族亲关系、进程的标识和标志、各个定时器的初值等。主要是与父进程

2015-05-29 22:08:57 2605

原创 leetcode Maximum Gap

题目Given an unsorted array, find the maximum difference between the successive elements in its sorted form.Try to solve it in linear time/space.Return 0 if the array contains less than 2 elements.You ma

2015-05-29 21:09:39 1670

原创 leetcode Median of Two Sorted Arrays

题目:There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)). 题目来源:https://leetcode.com

2015-05-28 11:16:57 1725

原创 用户级线程和内核级线程

用户级线程特点用户级线程仅存在与用户空间;内核并不能感知用户级线程的存在;内核的资源分配仍旧是以进程为单位进行的,用户级线程只能在进程内竞争资源。优点线程切换的时候开销很低。缺点用户线程模型假定线程运行系统最终会重新获得控制权,这可能会受到CPU绑定线程(CPU-bound thread)的阻碍。CPU绑定线程很少执行库函数调用,这样就会阻止线程运行系统重新获得控制权来调度其它的线程。程序员

2015-05-27 17:33:08 2131 2

原创 leetcode Longest Palindromic Substring

题目Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 题目来源:https://leetcode.c

2015-05-27 11:23:41 1639

原创 leetcode Longest Substring Without Repeating Characters

题目Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for “abcabcbb” is “abc”, which the length is 3. For

2015-05-27 10:36:59 1588

原创 leetcode Container With Most Water

题目Given n non-negative integers a1, a2, …, an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two l

2015-05-26 19:24:04 1613

原创 leetcode Implement Trie (Prefix Tree)

题目Implement a trie with insert, search, and startsWith methods.Note: You may assume that all inputs are consist of lowercase letters a-z. 题目来自于:https://leetcode.com/problems/implement-trie-prefix-tre

2015-05-26 15:59:40 1550

原创 linux下用shell、sed批量替换多个文件中的字符串

sedsed是一种非交互式的流编辑器,可动态编辑文件。vim是打开文件后和用户进行互动操作的,sed是非互动的,它处理的对象是文件的数据流。sed的工作模式是,对每一行数据,若符合样式,就执行指定的操作。 sed工具的语法如下:sed '样式命令' 文件 意思是,样式匹配成功后就执行指定的命令。它不会更改文件的内容,而是读取文件之后,经过编辑,然后把结果显示到标准输出上。如果想存储执行结果,就得

2015-05-25 21:31:45 15845

原创 leetcode Largest Number

题目Given a list of non negative integers, arrange them such that they form the largest number.For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330.Note: The result may be very larg

2015-05-25 15:23:41 1797 2

原创 TCP的状态迁移图

TCP的状态迁移不复杂。 TCP有11个状态,这些状态在TCP的三次握手和四次挥手里面都牵涉到。这些状态之间的迁移就是三次握手和四次挥手的过程。 再回顾一下三次握手和四次挥手的过程吧http://blog.csdn.net/u010902721/article/details/45955681 然后对照着看。 先看图下方的图例,实线表示客户端的状态迁移图,虚线表示服务器的状态迁移图。先分

2015-05-24 22:18:21 5610

原创 TCP/IP的三次握手与四次挥手

TCP包的报文格式 1. 序号Seq。占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 2. 确认序号Ack。占32位,对已收到的包进行确认。Ack=Seq+1,只有ACK标志位为1时,确认序号字段才有效。 3. 标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN: (A)URG:紧急指针(urgent poin

2015-05-24 21:04:34 2082

原创 leetcode Binary Search Tree Iterator

题目原题链接:https://leetcode.com/problems/binary-search-tree-iterator/ Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST.Calling next() wi

2015-05-24 14:57:34 1656

原创 红黑树(RBtree)

有可能是因为输入不够随机,也有可能经过某些插入和删除操作,二叉搜索树有可能会失去平衡而造成效率低下的情况。红黑树是一种平衡的二叉搜索树。红黑树(RBtree)定义红黑树不仅仅是一个二叉搜索树,而且满足以下规则:每个节点的颜色不是红色就是黑色;根节点的颜色为黑色。NULL节点视为黑色;如果每个节点的颜色为红色,则其子节点的颜色必须为黑色;任何一个节点到NULL(树尾端)的任何路径,所含的黑色

2015-05-22 17:57:09 1794

原创 二叉搜索树(binary search tree)

定义二叉搜索树:二叉树中任何节点的键值一定大于其左子树中每一个节点的键值,并且小于其右子树中每一个节点的键值。查找基于此,在二叉搜索树中搜索最小元素和最大元素是方便的,从根节点开始,一直往左走,直至无路可走,就得到了最小元素;从跟节点开始,一直往右走,直至无路可走,就得到了最大元素。 查找任何一个节点也是方便的。从跟节点开始,目标值比当前节点的键值大,就继续往右走,目标值比当前节点的键值小,就继续

2015-05-22 14:59:26 1781

原创 C++之STL中sort函数的内部实现(二)

另外一个版本:概述先进行introsort,基本有序后再使用insertion sort。introsort是改进的quick sort,为了防止最坏情况发生,它使用__lg()函数控制分割恶化的情况。intro sort算法元素个数检查,大于16个才进行后续操作;分割层次检查,分割层次超过指定值就使用heap sort;全部检查通过后使用quick sort,使用median-of-3方法确

2015-05-20 12:45:31 3241

原创 C++之STL中sort函数的内部实现(一)

概述STL中提供了一个sort()函数,用于排序。它的实现虽然是基于我们熟悉的quick sort, insertion sort, heap sort,但是内部却庞大复杂。sort()函数只能接受RandomAccessIterators,list slist都不能使用。 STL中的sort()函数在数据量大的时候采用quick sort,分段后的数据量小于某一个门槛时便采用insertion

2015-05-20 11:17:58 10976

原创 leetcode Best Time to Buy and Sell Stock III

题目Say you have an array for which the ith element is the price of a given stock on day i.Design an algorithm to find the maximum profit. You may complete at most two transactions.Note: You may not eng

2015-05-19 11:06:51 1663

原创 leetcode Best Time to Buy and Sell Stock II

题目Say you have an array for which the ith element is the price of a given stock on day i.Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one a

2015-05-19 09:43:58 1649

原创 leetcode Best Time to Buy and Sell Stock

题目Say you have an array for which the ith element is the price of a given stock on day i.If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), de

2015-05-18 22:12:44 1582

原创 求旋转数组后的最小值

题目一个有序数组,将前面的一段放在数组的后面就被称之为旋转。比如[1,2,3,4,5,6]就可以旋转为[5,6,1,2,3,4]。输入一个旋转后的数组,输出数组中的最小值。思路直接遍历的时间复杂度是O(n)。接下来介绍并实现一个O(log n)的算法。 以[50, 10, 20, 30, 40]为例: 下标:first = 0, last = 4, mid = 2 因为array[mid]

2015-05-18 17:42:02 1619

原创 用两个栈实现一个队列

题目使用两个栈模拟实现一个队列的功能。思路栈是“先进后出(FILO)”,队列是“先进先出(FIFO)”。栈的操作见:http://blog.csdn.net/u010902721/article/details/45748547 其中一个栈stack1固定用为push使用,另一个栈stack2固定用作pop使用。当stack2为空的时候,就将stack1中的元素逐个出栈,直接push到stack2

2015-05-18 15:57:05 1647

原创 c++中的覆盖(override)、重载(overload)与隐藏

定义覆盖(override)覆盖(override)指的是子类重定义父类中的虚函数。特征:分别位于具有继承关系的子类和父类中;父类中的某个函数带有virtual关键字;子类中有与之函数名相同、参数列表相同、返回值相同的函数。重载(overload)重载(overload)指的是在同一范围内,同一个类中或者是同一个作用作用范围中,两个函数具有相同的函数名,但是不同的参数列表或者返回值。特征:

2015-05-18 10:35:18 1855

原创 C++之STL中set的用法总结

set概述和vector、list不同,set、map都是关联式容器。set内部是基于红黑树实现的。插入和删除操作效率较高,因为只需要修改相关指针而不用进行数据的移动。 在进行数据删除操作后,迭代器会不会失效呢?删除set的数据时,实际的操作是删除红黑树中的一个节点,然后相关指针做相关调整。指向其他元素的迭代器还是指向原位置,并没有改变,所以删除一个节点后其他迭代器不会失效。list和map也是同

2015-05-16 21:39:08 27748 1

原创 字典树(Trie树)用法及例子(二)

上接http://blog.csdn.net/u010902721/article/details/45749447例二问题:有一组字符串,这一组字符串中,有没有两个字符串A和B,满足A是B的前缀。分析:我们只要区分开”abcde”、”abcxy”、”ab”就行了。node中i就用做一个flag了,等于1表示这个字符是某个已插入字符串的结尾字符。这样在在先插入了”ab”之后再插入”abcde”就能找

2015-05-15 21:25:50 2709

原创 字典树(Trie树)用法及例子(一)

字典树(Trie)概述字典树,又名Trie树。顾名思义,在字典中很好用。我们在查牛津词典时都是先按第一个字母找到以这个字母为首的单词所在的初始位置,在此位置的基础上,再按照第二个字母继续找。。。 插一句,字符串的字典序也是这个意思,先按照第一个字母排序,第一个字母相同的情况下再按照第二个字母排序。 字典树的数据结构图: 注意:节点中的value并不存储字符,节点中的value按需使用。每个

2015-05-15 20:53:31 7916 1

原创 c++之stl中的stack用法总结

stack概述stack是一种“先进先出(FIFO)”数据结构。不允许被遍历,没有迭代器。操作::empty();//判空::size();//元素个数::top();//返回栈顶元素的引用::push(const value_type& x);//进栈::pop();//删除栈顶元素

2015-05-15 19:16:51 7132

原创 C++之STL的list用法总结

list概述vector是连续空间,是基于数组的。list是基于链表的,STL的list是双向循环链表。list的元素操作::push_front(const T& x);//插入一个节点,并作为头结点::push_back(const T& x);//插入一个尾节点iterator ::erase(iterator position);//移除迭代器所指的节点::pop_front();//

2015-05-15 15:39:05 2418

原创 C++之STL中vector的总结

一、概述vector和数组类似,但是当空间不够用的时候vector可以动态追加空间。追加空间时并不是追加一个元素的空间,而是直接另外申请一个容量加倍的空间然后将原数据拷贝到新空间、释放原空间。二、元素操作1.push_back(elemType elem) 在数组的最后添加一个数据2.pop_back() 去掉数组的最后一个数据 3.at(int i) 得

2015-05-15 12:28:00 1834

转载 在llvm的clang中添加新的后端和Intrinsic function

本文记录一下如何在llvm的clang源码中添加一种新的后端(暂时命名为cpu0),并在其中添加Intrinsic function。涉及到的文件列表:./src/include/llvm/IR/IntrinsicsCpu0.td ./src/include/llvm/IR/Intrinsics.td ./src/include/llvm/ADT/Triple.h ./src/lib/Supp

2015-05-14 21:31:10 6894 6

原创 C++中static关键字用法总结

C++中static关键字有两类用法:和C语言用法相同的static和C++面向对象程序中的static。前者是静态全局变量、局部变量和静态函数,后者是类中的静态变量和静态函数。一、和C语言用法相同的static1、静态全局变量特点: - 未初试化的话会被自动初始化为0; - 静态全局变量在全局数据区分配内存; - 静态全局变量在作用域是在本文件内,所以在其他文件中无法被使用

2015-05-14 15:39:45 1878

原创 leetcode:Maximal Rectangle

这是leetcode的第85题,原题如下:Given a 2D binary matrix filled with 0’s and 1’s, find the largest rectangle containing all ones and return its area.leetcode的第84题是Largest Rectangle in Histogram,原题如下: 解决方案在http

2015-05-14 12:50:46 1677

原创 leetcode:Largest Rectangle in Histogram

Largest Rectangle in Histogram这是leetcode上面的一道题,百度面试的时候也遇到了。原题是这么说的: 思路简单思路:对于数组中的每一个元素height[i],算出包含它的最大的矩形面积。也就是找到它左边第一个小于它高度的下标l(height[l] < height[i]),找到它右边第一个小于它高度的下标r(height[r] < height[i])。包含hei

2015-05-14 11:02:53 1565 1

遗传算法实例(python实现)

用python实现的遗传算法的一个实例 求函数f x 10 sin 5x + 7 cos 4x 0 &lt; x &lt; 10的最大值

2014-04-12

空空如也

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

TA关注的人

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