- 博客(36)
- 资源 (3)
- 收藏
- 关注
原创 leetcode解题思路
收录https://oj.leetcode.com/problems/ 所有题目的解题思路。Min Stack题目要求:设计一个最小栈,要求能实现pop、push、min操作,也就是返回栈内元素最小值。解法:新加一个辅助栈,保存当前栈内最小值。当入栈元素小于辅助栈栈顶元素时,同时入辅助栈;出栈时,当出栈元素等于栈顶元素时,同时辅助栈出栈。Find Min
2014-12-15 12:51:06
3109
原创 算法题总结+解法
原题转载自:http://www.cnblogs.com/xwdreamer/archive/2011/12/13/2296910.html解法为原创,红色字体标出。1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14
2014-12-10 13:01:42
4336
原创 google内部考核制度OKR
OKR 全称是「目标和关键成果」(Objectives and Key Results)OKRs几个重要的点:1. OKRs要是可量化的(时间&数量),比如不能说“使gmail达到成功”而是“在9月上线gmail并在11月有100万用户”。2.目标要是有野心的,有一些挑战的,有些让你不舒服的。一般来说,1为总分的评分,达到0.6-0.7是较好的了,这样你才会不断
2014-12-10 12:58:28
1752
原创 随机洗牌算法和随机选择算法
1、随机洗牌算法问题描述:将有序的集合中的元素以随机的顺序重新排列解法:for i:=1 to n do swap(a[i], a[random(1,n)]); // 凑合,但不是真正随机 for i:=1 to n do swap(a[i], a[ra
2011-09-29 09:34:32
2727
原创 常见linux命令
1、sort 根据指定的方法,以行为单位进行排序,然后输出。ll | sort -k 5 -n 表示用第五个key进行排序,从1开始计数,-n表示采用数字序,-d表示字典序ll | sort +4 -5 -n 老式写法,从零开始计数,表示第五个开始,到第六个结束
2011-09-23 11:19:24
780
原创 如何定义宏,返回数组的大小,并可以检查传入的参数是否为数组
问题描述:通常我们会定义数组,如int a[100];然后再写别的代码,然后在程序不知道的哪个位置,传入了一个a我觉得他可能是个数组,但不确定,而且我还想知道a这个数组的大小。通常我们会这么做sizeof(a)/sizeof(a[0])但是这样做有问题,如果a
2011-09-21 16:27:32
2826
原创 C++ 完美实现单例类(仅供参考)
Singleton模式是常用的设计模式之一,但是要实现一个真正实用的设计模式却也不是件容易的事情。1. 标准的实现class Singleton{public: static Singleton * Instance()
2011-09-09 18:47:37
3752
原创 大头小头 字节序
记住,书写方式是大头。****************************************************************************想要查看当前环境是高地址还是低地址可以使用联合体如:union str{int
2011-09-05 11:53:28
1349
原创 内存对齐-笔记
关键是下面4个概念:1.数据类型自身的对齐值:就是基本数据类型的自身对齐值。 (注意:结构体作为成员出现的话,其自身的对齐值参考3)2.指定对齐值:#progma pack (value)时的指定对齐值value。 3.结构体或者类的自身对齐值:其
2011-09-05 11:29:54
734
原创 C语言中的高级声明--《c和指针》摘要
分析C语言中的高级声明时,记住三点:1、用于声明变量的表达式和普通的表达式在求值时所使用的规则相同2、下标运算符[ ] 和( )的优先级大于*3、从里往外分解,可以使用替代符号帮助分解例子:1、 int (*f) []; int *f[];前者是
2011-09-04 10:55:19
990
原创 游戏服务器中pvp、pve、rppvp、ffa-pvp的含义
最近看mangos源码,在登录服务器部分,遇到几个服务器类型的缩写,让我这个非玩家出身的人困惑了一阵,现列举出来:pvp:玩家对玩家.就系在争夺中领土可以随意攻击敌对阵营玩家.不论级数pve:玩家对电脑.就是不论任何领地.除非战场.都不能攻击敌对阵营玩家.
2011-08-12 11:12:59
4929
转载 游戏的本质[转自网易]
本文摘要: 游戏的本质:生命体谋求自足的目的的活动,是生命体获取负熵的一种方式。 游戏性:游戏的自足性的可实现性(包括可探索性和竞争性),即游戏所包含的负熵的相对量。游戏性【某种游戏所必须具备的性质】=可探索性+可竞争性 可探索性:游戏的规律性和变异性的乘积,是单机游戏的
2011-08-08 12:10:21
5204
原创 【effective c++】C++构造函数、析构函数与抛出异常
问题:构造函数可以抛出异常么?析构函数可以吗?从语法上来说,构造函数和析构函数都可以抛出异常。但从逻辑上和风险控制上,构造函数可以,析构函数不推荐抛出异常。(参见effective c++ 条款08 别让异常逃离析构函数)1、构造函数可以抛出异常:无论何时,从
2011-07-05 17:01:17
4854
转载 gcc -l 链接共享库(动态/静态共享库)
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种:静态库:在程序编译时会被链接到目标代码中,程序运行时将不再需要它。动态库:在程序编译时并不会被链接到目标代码中,而是在程序运行时才被加载的,因此程序运行时还需要动态库存在。静态库
2011-07-04 16:35:26
1774
原创 将一个正整数n表示成一系列的正整数之和,求共有几种划分方法
题目:将一个正整数n表示成一系列的正整数之和:求共有几种划分方法n=n1+n2+n3+.....+nk (n1>=n2>=n3.......>=1, k>=1)被称作正整数的一个划分。正整数n可能存在不同的划分,例如正整数6的全部划分为6=66=5+16=4+2 6=4+1+16=3+3 6=3+2+1 6=3+1+1+16=2+2+2 6=2+2+1+1
2011-07-02 14:18:24
11215
原创 C++ 初始化类的常量数据成员、静态数据成员、常量静态数据成员
有关const成员、static成员、const static成员的初始化: 1、const成员:只能在构造函数后的初始化列表中初始化2、static成员:初始化在类外,且不加static修饰3、const static成员:类只有唯一一份拷贝,且数值不能改变。因此,可以在类中声明处初始化,也可以像static在类外初始化 示例:#include using std
2011-06-28 16:35:00
13662
原创 2011-6-24 笔试题讨论
本周主题,分享it面试和笔试题,现收录如下:1、给定一个整数数组,求三个数之和的绝对值最小?首先对数组排序,复杂度为nlgn。然后从1……n每次选取一个数,这里是n个复杂度。每次选取一个数后,再从数组的begin、end开始,相向移动。如果三者之和小于零,则begin++,若大于零,则end--,移动到绝对值不能再小为止。更新min值。这里需要遍历一遍数组,复杂度也为n。因此最后的复杂度为
2011-06-25 13:19:00
1613
原创 C++必知必会 读书笔记3
条款32 禁止复制访问修饰符(public、protected、private)可用于表达和执行高级约束技术。常见的一种约束技术就是限制对象的复制行为。做法是,将复制构造函数、复制赋值操作符声明为private,同时不提供定义。class NoCopy{private: NoCopy(const NoCopy&);//禁止copy constructor NoC
2011-06-22 10:48:00
1270
1
原创 C++必知必会 读书笔记2
条款25 实参相依的查找当查找该调用何种函数时,编译器会到实参所在的命名空间中查找函数,使之成为候选调用函数之一 条款26 操作符函数查找直接调用操作符时,遵循普通的函数查找规则;使用中缀语法调用操作符时,编译器也会考虑实参所在那个的命名空间 两个候选------实参所在的命名空间 | ---------调用函数所在的命名空间例子
2011-06-21 09:58:00
1302
原创 编程之美:判断两链表是否相交
《编程之美》里面有一篇是讲如何判断两链表是否相交,读后觉得原文太过啰嗦。于是,笔者总结了一下,此类问题可以扩展为两大类,分别是:1、单链表与环问题http://blog.youkuaiyun.com/liuxialong/archive/2011/06/20/6555850.aspx2、单链表相交与环问题(本文) 给定两单链表A、B,只给出两头指针。请问:1、如何判断两单链表(无环)是
2011-06-20 13:49:00
14598
2
原创 笔试题:如何判断单链表是否存在环
给定一个单链表,只给出头指针h:1、如何判断是否存在环?2、如何知道环的长度?3、如何找出环的连接点在哪里?4、带环链表的长度是多少? 解法:1、对于问题1,使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。如存在环,则两者相遇;如不存在环,fast遇到NULL退出。2、对于问题2,记录下问题1的碰撞点p,slow、fast从该点
2011-06-20 11:25:00
30595
9
原创 mangos源码分析
参考:1、http://www.cppblog.com/ming81 mangos源码分析系列2、 http://hi.baidu.com/zyy503950958/blog/item/b92fbe87514e9c26c75cc36c.html mangos 源码阅读笔记,十分详细,框架流程分析的很清晰 3、http://blog.sina.com.cn/s/articlelist_1814283
2011-06-19 21:30:00
5634
原创 基类派生类构造析构函数调用顺序、成员初始化和销毁顺序
#include #include #include /*构造和初始化顺序:1、基类的类成员初始化2、基类构造函数3、派生类的类成员初始化4、派生类构造函数销毁顺序:1、子类析构函数2、子类的类成员析构、销毁3、派生类析构函数4、派生类的类成员析构、销毁这两个顺序,可以用入栈、出栈操作来理解~其顺序刚好相反*/using namespace std;class c{public: c
2011-06-19 16:26:00
4554
2
原创 求字符串编辑距离
字符串编辑距离:给定两个字符串s和t,从s转换成t所需要的增加、删除、修改的最小操作数,称为字符串的编辑距离。 求两个字符串的编辑距离可以使用动态规划的思想(DP),动态规划的基本思路是将一个复杂的最优解问题分解成一系列较为简单的最优解问题,再将简单的最优解问题进一步化解,直到一眼就能看出最优解。 令D(s,t)为字符串s到字符串t的编辑距离。那么求D(s,t)的问题可以转换成
2011-06-19 13:23:00
2747
原创 linux epoll模型
参考:http://hi.baidu.com/fposkln/blog/item/202f7e45bb65773586947341.html
2011-06-18 17:38:00
1246
原创 MMORPG游戏服务器端设计(续)
绿色格线内表示物理上为一台服务器。1、方案一:低成本、低性能2、方案二3、方案三4、方案四支持大规模玩家、高成本、高负载均衡、高性能、高灵活性设N为每个集群的服务器数,M为服务器集群个数则总服务器个数为:3+M*(2+N)其中,每个集群配备N个逻辑地图服务,加上一个网关服务器、一个角色数据库;整个大区服务器群配备一个登陆服务器、一个账户数据库服务
2011-06-18 13:44:00
2228
原创 MMORPG游戏服务器端设计
之前有过一篇介绍游戏服务器端的博文http://blog.youkuaiyun.com/liuxialong/archive/2011/06/12/6539762.aspx但是篇幅太长,而且过于关注细节,适合深读。这里给出一种宏观把握MMORPG服务器设计的文章,适合入门,读完后对服务器端的设计能有大概的掌握,方便对感兴趣的部分进行深入了解。1、首先是常见的服务器端结构,其中包括:登陆服务器、
2011-06-18 13:29:00
5083
原创 阿里云笔试题:正则表达式和有限状态自动机
根据正则表达式画出有限状态自动机。 参考:http://blog.youkuaiyun.com/crackcell/archive/2008/04/07/2256758.aspx1、概念字母表中的符号组成的有限长度的序列。记号s的长度记为|s|。长度为0的记号称为空记号,记为ε。非确定有限自动机(Nondeterministic Finite Automaton)NFA确定有限自动机(
2011-06-16 18:16:00
6747
原创 阿里云笔试题:最大子段和问题的动态规划解法
最大子段和问题的动态规划解法,给出一段数字,求出最大字段和?例如:数组a,整数个数为n,b为辅助数组a: 2 3 -7 6 4 -5b: 2 5 -2 6 10 5那么,最大子段和为10 本题采用动态规划的思想,令b[j]为以j结尾的最大子段和,那么有:b[j]=max{b[j-1]+a[j], a[j]}因此,在求b[j]值的时候,只需要看b[j-1]是否大于零,
2011-06-16 18:03:00
2775
原创 阿里云笔试题
题目:在一条东西走向的直线道路上,有12个厂,他们距离西侧端点的距离分别是0,4,5,9,13,18,27,30,31,38,39,47,从中选取3个点作为原料投放点,各厂从离其距离最近的原料投放点获取原料,选择最佳3点,使得距离之和最小。请问这三个点怎么确定?
2011-06-16 16:58:00
2293
原创 新浪微博笔试题:删除字符串中多余的空格
给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。比如 “ I like football ” 会变成 "I like football"函数接口为:void RemoveExtraSpace(char* str); 代码如下: void RemoveExtraSpace(char* str){ if(str == NU
2011-06-14 13:39:00
3305
原创 C实现动态分配三维数组
在新浪微博的笔试上遇到这类题目当时的做法是直接malloc(m*n*k),回来后发现不对。现列出详细代码,引以为戒: int main(){ int i, j, k;//5 6 7三维矩阵 //malloc char ***p=(char ***)malloc(5*sizeof(char **)); for(i=0;i
2011-06-14 12:41:00
2941
原创 c++中的set_new_handler和new_handler
详细可参考 《effective c++》第三版 条款49:了解new_handler的行为相关链接:http://blogold.chinaunix.net/u/3374/showart_1849816.html 当operator new申请一个内存失败的时候,它会进行如下的处理步骤: 1、如果存在客户指定的处理函数,则调用处理函数(new_handler),如果不存
2011-06-13 10:20:00
12112
原创 游戏服务器结构探讨
原文地址:http://blogold.chinaunix.net/u/1129/showart_397768.htmlhttp://bbs.gameres.com/showthread.asp?threadid=93775 有关游戏开发:游戏开发始终是个小项目,另外由于开发时间的限制,软件工程的思想和方法在游戏开发领域并不怎么受欢迎。从游戏开发团队的规模也能看出,基本上只能算小开
2011-06-12 18:08:00
16173
3
原创 临时对象不能被绑定到非const引用参数上====》扩展到临时对象问题
概括一下:不能把临时对象作为实参传给非const引用。例如: void conv(string &str){} int main(){ conv("dasd");//这里错了,编译器自动生成一个string(“dasd”)临时对象,不能将该临时对象传给非const引用} 因此,需要将其改为void conv(string str){} /
2011-06-12 17:37:00
5022
1
酒店联盟信息系统【含系统设计报告、分析报告】
2008-12-19
学生浴室刷卡管理系统
2008-12-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人