- 博客(28)
- 资源 (7)
- 收藏
- 关注
原创 基于引用计数的智能指针
编程语言中实现自动垃圾回收机制方式有好几种,常见的有标记清除,引用计数,分代回收等。C++需要手动管理垃圾,可以自己实现一个智能指针。最简单的是引用计数的思路template class SmartPointer { T* obj; unsigned int* count; SmartPointer(T* ptr) { obj = ptr;
2015-07-30 21:18:17 616
原创 常见IO模型
阻塞IO模型阻塞IO是最通用的IO,使用这种IO接受数据时,在数据没有到来之前程序会一直等待。非阻塞IO当把套接字设置成非阻塞IO时,则对于每次请求,内核都不会阻塞,会立即返回。当没有数据时,会返回一个错误。IO复用使用IO复用的可以在等待的时候假如超时时间,当超时时间没有到达的时候情况与阻塞IO是一样的,当时间到达,但是没有数据是,系统会自动返回,不在等待。s
2015-07-30 21:01:16 573
转载 modle factory
interface InterfaceFactory { /** * @param string $name * @return mixed */ public static function create($name);}modelclass ModelFactory implements InterfaceFactory{ pr
2015-07-27 14:00:27 487
转载 template
class TemplateLoader{ protected $_tplDir = 'templates/'; private $_mapVars = array(); public function __construct($options = array()) { foreach ($options as $k => $v) {
2015-07-27 13:57:26 334
原创 string 简单实现
namespace ss{ class string { friend ostream& operator <<(ostream&, const string&); char *_str; public: string():_str(new char[1]){ _str[0] = '\0'; }
2015-07-24 16:03:57 586
原创 c++vector简单实现
const int DEFAULT_CAP = 3;template class vector { // int capacity; T* _data; int _size; public: //const vector ():capacity(DEFAULT_CAP),_size(0),_data(new T[capacity])
2015-07-24 15:15:28 756
原创 LintCode 字符串转化成正数(atoi)
困难 转换字符串到整数15%通过实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。您在真实的面试中是否遇到过这个题? Yes样例"10" =>10"-
2015-07-16 17:59:46 1504
原创 LintCode 最近公共祖先
中等 最近公共祖先查看运行结果 34%通过给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。最近公共祖先是两个节点的公共的祖先节点且具有最大深度。您在真实的面试中是否遇到过这个题? Yes样例对于下面这棵二叉树 4 / \3 7 / \ 5 6LCA(3,
2015-07-16 16:42:49 828
原创 LintCode 第K大元素
中等 第k大元素查看运行结果 19%通过在数组中找到第k大的元素您在真实的面试中是否遇到过这个题? Yes样例给出数组[9,3,2,4,8],第三大的元素是4给出数组 [1,2,3,4,5],第一大的元素是5,第二大的元素是4,第三大的元素是3,以此类推注意你可以交换数组中的
2015-07-15 22:50:34 1836
原创 LintCode 丑数
中等 丑数查看运行结果 20%通过设计一个算法,找出只含素因子3,5,7 的第 k 大的数。符合条件的数如:3,5,7,9,15......您在真实的面试中是否遇到过这个题? Yes样例如果k=4, 返回 9挑战要求时间复杂度为O(nlogn)或者O(n)class Soluti
2015-07-09 14:50:37 1193
原创 LintCode 带最小值操作的栈
实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。您在真实的面试中是否遇到过这个题? Yes样例如下操作:push(1),pop(),push(2),push(3),min(), push(1),min() 返回 1,2,1用了两个st
2015-07-09 13:39:46 2448
原创 LintCode复制带随机指针的链表
中等 复制带随机指针的链表查看运行结果 27%通过给出一个链表,每个节点包含一个额外增加的随机指针可以指向链表中的任何节点或空的节点。返回一个深拷贝的链表。 用了一个哈希表,空间换取时间/** * Definition for singly-linked list with a random pointer. *
2015-07-09 12:52:01 1328
原创 TCP Retransmission
When the sending side sees a duplicate ACK, it knows that the other side must have received a packet out of order, which suggests that an earlier packet might have been lost.Since it is also p
2015-07-08 14:48:43 12023
原创 LintCode 二叉树的层次遍历 II
中等 二叉树的层次遍历 II查看运行结果 42%通过给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历)您在真实的面试中是否遇到过这个题? Yes样例给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / \ 9 20 /
2015-07-06 14:45:11 1185
原创 LintCode 二叉树的层次遍历
中等 二叉树的层次遍历查看运行结果 33%通过给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)您在真实的面试中是否遇到过这个题? Yes样例给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7返回它的
2015-07-06 14:38:58 2189 1
原创 LintCode比较字符串
容易 比较字符串27%通过比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母您在真实的面试中是否遇到过这个题? Yes样例给出 A = "ABCD" B = "ACD",返回 true给出 A = "ABCD" B = "AABC", 返回 false
2015-07-03 22:11:58 632
原创 LinCode落单的数
容易 落单的数查看运行结果 60%通过给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。您在真实的面试中是否遇到过这个题? Yes样例给出 [1,2,2,1,3,4,3],返回 4挑战一次遍历,常数级的额外空间复杂度位运算class Solut
2015-07-03 15:58:20 968
原创 TCP closing a connection
client closes socket:clientSocket.close();step1 :client sends TCP FIN control segment to serverstep2: Server receives FIN,replies with ACK. Closes connection,sends FIN.time wait 30
2015-07-02 17:07:54 754
原创 TCP Three-Way handshake
initialize TCP variables:sequence numbersbuffers,flow control infoClient: connection initiatorSocket clientSocket = new Socket("hostname","portnumber");Server: contacted by clientS
2015-07-02 17:05:45 141
原创 LintCode 子树
容易 子树19%通过有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。您在真实的面试中是否遇到过这个题? Yes样例下面的例子中 T2 是 T1 的子树: 1 3 / \
2015-07-02 10:26:30 1477
原创 LintCode 用递归打印数字
中等 用递归打印数字24%通过用递归的方法找到从1到最大的N位整数。您在真实的面试中是否遇到过这个题? Yes样例给出 N = 1, 返回[1,2,3,4,5,6,7,8,9].给出 N = 2, 返回[1,2,3,4,5,6,7,8,9,10,11,...,99].用字符串模拟数字clas
2015-07-02 10:08:39 1257 2
原创 LintCode 寻找缺失的数
中等 寻找缺失的数查看运行结果 32%通过给出一个包含 0 .. N 中 N 个数的序列,找出0 .. N 中没有出现在序列中的那个数。您在真实的面试中是否遇到过这个题? Yes样例N = 4 且序列为 [0, 1, 3] 时,缺失的数为2。class Solution {public: /**
2015-07-01 22:22:44 1124
原创 LintCode 字符串查找
字符串查找(又称查找子字符串),是字符串操作中一个很有用的函数。你的任务是实现这个函数。对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。样例如果 source = "source" 和 target = "target",返回 -1
2015-07-01 16:01:24 1590
原创 Lintcode 将整数A转换为B
样例如把31转换为14,需要改变2个bit位。(31)10=(11111)2(14)10=(01110)2贴代码class Solution {public: /** *@param a, b: Two integer *return: An integer */ int bitSwapRequired(int a, int
2015-07-01 15:17:35 1297 2
原创 LintCode 二叉树的遍历 (非递归)
前序:class Solution {public: /** * @param root: The root of binary tree. * @return: Preorder in vector which contains node values. */ vector preorderTraversal(TreeNode *root) {
2015-07-01 14:48:55 628 1
原创 TCP header
端口号用来区别applicationsequence Number 用在滑动窗口协议,区别是否是要接收的第一个data str 在整个 str 的编号acknowledgement number 告诉对方这个number之前我都收到了SYN (FLAG) 1 : 建联线,一般是第一个封包 FIN(finish) 1: 代表结束连线ACK : 1 代表acknowledge
2015-07-01 14:23:34 990
原创 TCP buffer
Tcp有以下特点Reliableconnection orientedbyte-stream service要处理flow control:要有一个机制控制传送不要让buffer溢出congestion control:involves preventing too much data from being injected into the network,t
2015-07-01 10:55:39 1247
2017阿里技术年度精选(下)
2018-11-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人