- 博客(94)
- 资源 (5)
- 收藏
- 关注
转载 Find the largest square fits a rectangle
Given a rectangle with known width and height, design an algorithms to fill the rectangle using n squares(n is integer, also given) and make sure in the result the wasting area is minimized. Lengt
2012-11-30 22:06:09 584
转载 相同bit1的最大的数
给定整数n,求出和n 的bit 1的数量相同的,并且大于n的最小值,或者小于n的最大值这个题目的思路和给定2134,求相同数字的大于2134的最小值思路一样,都是从后往前找,找到第一次遇到的数字下降,然后再从后往前,找到第一个大于这个数字的数,然后交换,然后从下降位置之后的所有数字从小到大排序求小于2134的最大值,从后往前找,第一次遇到数字上升的位置i, 再从后往
2012-11-30 18:47:23 870
转载 检测单链表是否是回文
如何在不显式申请额外空间的情况下完成?设置两个指针,一个指针到链表末尾时开始回溯,另一个指针开始和这个指针比较struct NODE{ int nVal; NODE* pNext; NODE(int n) : nVal(n), pNext(NULL) {}};bool _inner_check(NOD
2012-11-30 12:20:22 2559
转载 打印数字回文
产生N个数字回文1,2,..,9,11,22,..,99,101,....The order of the palindrome is only related to the "left half" to the numberE.g:for two digit palindrome, the "left half" are 1,2,3,4,..,9 which ma
2012-11-30 10:14:31 768
转载 打印给定数目括号的组合
void paranthesis(int left, int right, vector &vt) { if (left == 0 && right == 0) { for (int i = 0 ;i < vt.size() ; ++i) cout << vt[i]; cout<<endl; return;
2012-11-30 09:47:43 758
转载 数据库游标
静态游标使用静态游标,可以在记录集中向前或向后移动。但是,静态游标不会对其他用户造成的记录变化有所反映。消耗资源较少。动态游标使用动态游标,可以在记录集中向前或向后移动。其他用户造成的记录的任何变化都将在记录集中有所反映。消耗资源较多只进游标使用前向游标,只能在记录集中向前移动。由键集驱动的游标可以在记录集中向前或向后移动
2012-11-29 22:55:57 581
转载 找到比给定数大的数
Round 5: Q2:Design an algorithm to find the immediate greater number to a given number, such that the result has the same digits as the given input number.Example:Input Output1234 12431243
2012-11-29 16:21:58 749
转载 找单独出现的bit 数组
Given a binary matrix of N X N of integers , you need to return only unique rows of binary arrayseg:0 1 0 0 11 0 1 1 00 1 0 0 11 1 1 0 01 1 1 0 1ans:0 1 0 0 11 0 1 1 01 1 1 0 0
2012-11-29 15:39:51 648
原创 判别式和产生式的区别
这个题目遇到两次自然语言处理中,经常要处理序列标注问题(分词、词性标注、组快分析等),为给定的观察序列标注标记序列。令o和s分别代表观察序列和标记序列, 根据贝叶斯公式,1 生成模型和判别模型的定义对o和s进行统计建模,通常有两种方式:(1)生成模型构建o和s的联合分布p(s,o) = p(s) *p(o|s)(2
2012-11-29 13:37:30 7377
转载 Logistic regression (逻辑回归) 概述
http://hi.baidu.com/grandyang/item/e1df4ecf195eb816b77a240eLogistic regression (逻辑回归)是当前业界比较常用的机器学习方法,用于估计某种事物的可能性。比如某用户购买某商品的可能性,某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等。(注意这里是:“可能性”,而非数学上的“概率”,logisitc回归
2012-11-29 13:29:28 1002
转载 找出缺少的数
There is an array of size 50 that is expected to contain all the numbers from 1 to 50(every number occuring only once). But there is one number in the array that does notsatisfy this condition i.e
2012-11-28 23:48:21 629
转载 二叉树叶子节点迭代器
开始的想法是先将叶子节点放入到一个vector中,然后依次next下面的解法类似,但是只有在Next操作时才寻找下一个叶子节点template class Iterator{ public: Iterator(T *root) { if(root == NULL) return;
2012-11-28 17:10:15 940
转载 查看是否由两个单词组成
给定一个词典,新添一个词条,查看这个词条是否由词典中的两个词组成?首先想到的就是用hash的方法,将这个词拆分为两半,查看前面和后面的词是否在词典中。时间复杂度是o(n)还有一种方法,就是用trie。正向词建trie,逆向词建trie,然后在正向trie树中查找词条,记录在过程中可以成词的位置。在逆向trie中从后向前查找词条,一旦遇到可以成词的位置,并且这个位置和之前记录
2012-11-28 12:44:07 865
转载 找每个窗口中的最大值
A long array A[] is given to you. There is a sliding window of size w which is moving from the very left of the array to the very right. You can only see the w numbers in the window. Each time the
2012-11-28 11:22:32 647
转载 找数组波谷
Suppose we are given an array A[1 .. n] with the special property that A[1] ≥ A[2] andA[n − 1] ≤ A[n]. We say that an element A[x] is a local minimum if it is less than or equalto both its neighbo
2012-11-28 10:02:00 1179
转载 对文件分组
将一堆文件中,相同内容的文件分为一组通过字符串匹配速度太慢,首先应该想到的是将文件内容编码,譬如取其md5,或者其hash值,然后用map, 将md5相同的文件放在相同的key下还有一个小优化的地方,就是先通过文件的size大体的分类
2012-11-28 08:44:03 954
转载 实现内存检测工具
思路就是覆盖原有的malloc和free函数,并记录内存申请和释放情况struct MEM_INFO { int m_addr; int m_size; char m_strFile[1024]; int m_nLine;};hash_map hstbl;void* xmalloc(unsigned int s
2012-11-27 23:26:30 493
原创 汉诺塔
class term{public: term(int f, int tmp, int t, int n, int flag) :from(f),tmp(tmp) , to(t), n(n),flag(flag){} int from; int to; int tmp; int n;//表示从1...n的汉诺塔 int flag;//表示要输出的
2012-11-27 23:10:34 566
转载 Find first subarray sum to zero
given an array with positive and negative numbers find the first continuous subarray that sums to 0bool FindFirstPair(int& nStart, int& nEnd, int a[], int n){ nStart = nEnd = n;
2012-11-27 20:54:42 875
转载 Given an array A[i..j] find out maximum j-i such that A[i]<a[j]
//Given an array A[i..j] find out maximum j-i such that A[i]<a[j] in//O(n) timestruct REC{ int nIndex; int nVal;};bool lessThan(const REC& rec1, const REC& rec2){ return rec1.nVal < rec2.nV
2012-11-27 20:06:48 886
转载 一致性hash算法
http://blog.csdn.net/v_july_v/article/details/6879101问题描述: 例如手机朋友网有n个服务器,为了方便用户的访问会在服务器上缓存数据,因此用户每次访问的时候最好能保持同一台服务器。已有的做法是根据ServerIPIndex[QQNUM%n]得到请求的服务器,这种方法很方便将用户分到不同的服务器上去。但是如果一台服务器死掉了
2012-11-27 14:57:06 1681
转载 微博的架构
http://blog.csdn.net/cleanfield/article/details/6339428用户信息表(t_user_info)字段名称字节数类型描述User_id4uint32用户编号(主键)User_name20C
2012-11-27 14:13:37 2017
转载 数据库的拆分
http://blog.csdn.net/bluishglc/article/details/6161475本文着重介绍sharding的基本思想和理论上的切分策略,关于更加细致的实施策略和参考事例请参考我的另一篇博文:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示 一、基本思想 Sharding的基本思想就要把一个数据库切分
2012-11-27 12:54:13 7613
原创 tcp
1. 建立连接 为什么不采用2次握手? 为了防止两次握手情况下已经失效的连接请求报文段突然又传到服务端,从而产生错误。 客户A向服务B发送请求连接,但是由于长时间滞留,A认为丢失,又重新发送请求连接,B收到后,建立连接,数据传输结束之后,断开连接。此时,之前滞留的请求报文daunting到达B,B认为A又发送连接请求,此时如果是三次握手,B向A发送确认报文段,由于这是已经失效的请求,A
2012-11-27 11:13:04 657
原创 概率题
某人外出两天旅游,根据天气预报得知:第一天下雨的概率0.6,第二天下雨的概率0.3,两天都下雨的概率0.1求下列事件的概率:1. 第一天下雨,第二天不下雨2. 第一天不下雨,第二天下雨3. 至少有一天下雨4. 两天都不下雨5. 至少有一天不下雨设A 第一天下雨,B第二天下雨1. p(A~B) = p(A - AB) = p
2012-11-27 10:18:52 1431
转载 设计模式分类
http://blog.csdn.net/nickcen/article/details/1948871. 创建型设计模式2. 结构型设计模式3. 行为型设计模式1. Factory模式a) 结构:注: 1)Product A和Product B具有相同的父类,但是具有不同的实现。 2)Creator可根据不同的输入
2012-11-27 09:54:29 3093 2
转载 查找数据结构相关题目
http://jpkc.lit.edu.cn/sjjg/zxxx/gzxt/gzxt9-3.html选择题1. 若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。 A. (n-1)/2 B. n/2 C. (n+1)/2 D. n2. 对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平
2012-11-27 09:46:44 4226
原创 m叉树的叶子节点数量
一个m叉树,度数为1的节点数为N1,度数为2的节点数为N2,度数为m的节点数为Nm, 求叶子节点的数量节点总数为 N1 + 2*N2 + 3*N3 + ... +m*Nm +1则叶子节点数量为 N1 + 2*N2 + 3*N3 + ... +m*Nm +1 - (N1 + N2 +... +Nm)= 1 + sigm(i-1)Ni
2012-11-27 09:39:52 6203 1
转载 服务器端利器--双缓冲队列
http://rrsongzi-gmail-com.iteye.com/blog/696627传统队列是生产者线程和消费者线程从同一个队列中存取数据,必然需要互斥访 问,在互相同步等待中浪费了宝贵的时间,使队列吞吐量受影响。双缓冲队使用两个队列,将读写分离,一个队列专门用来读,另一个专门用来写,当读队列空或写 队列满时将两个队列互换。这里为了保证队列的读写顺序,当读队列为空且写队列不为
2012-11-27 09:22:15 2143
转载 旋转矩阵
将一个n*n的方阵旋转90°用inplace的方法,先通过对角线交换元素,再通过矩阵的水平中间线交换数据如果将一个n*m的矩阵旋转90°一个比较类似的方法是,先将这个矩阵扩展为一个方阵,然后再用上述方法还有一个方法:】先转换最外层,然后一层层内移到中心void Rotate(int** pArr, int n, int nStep,
2012-11-23 15:51:44 786
原创 数据库游标
游标 是系统为用户开设的一个数据缓冲区,存放sql语句的执行结果,每个游标区都有一个名字。用户可以通过游标逐一获取记录,对每一条记录可以有不同的操作
2012-11-23 13:49:50 504
转载 sql语句练习
http://www.cnblogs.com/finejob/articles/974900.html题目1:====== 为管理岗位业务培训信息,建立3个表: S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄 C (C#,CN ) C#,CN 分别代表课程编号、课程名称 SC ( S#,C#,G
2012-11-23 13:14:06 958
转载 Convert it to a sorted array with minimum cost
http://shashank7s.blogspot.com/2011/05/wap-to-find-minimum-value-in-window-of.htmlYou are given an array of positive integers. Convert it to a sorted array with minimum cost. Only valid operat
2012-11-21 22:37:33 698
转载 字节按位逆序
32位的number,把它按位逆序 : 1101001 ==> 1001011最直接的想法就是循环32次还有可以优化的地方// 交换每两位v = ((v >> 1) & 0x55555555) | ((v & 0x55555555) << 1);// 交换每四位中的前两位和后两位v = ((v >> 2) & 0x33333333) | ((v & 0x333
2012-11-21 15:46:49 3479
转载 原地排列字符串
将字符串abcde12345 inplace的转换为 a1b2c3d4e5我的想法是整块整块的向后平移首先bcde平移,将1放入正确位置将cde平移,将2放入正确位置....网上的做法比较高效先算出当前字符的正确位置,然后将当前字符放到正确位置上,然后再计算被替换位置的正确位置int ClacTarget(int nLen, int nInde
2012-11-21 14:08:23 742
转载 linux 多线程 多进程同步
多线程 同步的方法1. 临界区2. 互斥量(注意mutex只能用于线程的互斥,不能用于进程)3. 信号量4. 事件多进程 同步方法管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;信号(Signal):信号是比较复杂的通信方
2012-11-21 13:03:16 1059
转载 c++实现读写共享锁
http://blog.csdn.net/raomeng1/article/details/7685421一、使用互斥锁和条件变量实现读写锁:class readwrite_lock{public: readwrite_lock() : stat(0) { } void readLock() { mtx.lock(); while (stat < 0)
2012-11-21 11:23:43 9723
转载 实现计算器功能
http://www.1point3acres.com/bbs/thread-12175-1-1.html如何写出一个简单的4则运算的程序。输入 " 1 -2*3 + 6/3" 输出 -3只用支持正数int的,+,-,*,/,不用写出()的情况要注意的问题是,空格。。。。
2012-11-19 11:25:36 641
转载 Reverse Polish Notation
http://www.1point3acres.com/bbs/thread-31595-1-1.html定义一种叫做“Reverse Polish Notation”的表达式:3 + (4 * 5)可以写成3 4 5 * +即运算符号写在数字的后面。现在规定,x代表数字,*代表运算符。给定一个包含有x和*的string,问最少需要多少次操作(操作包括,
2012-11-19 09:25:00 507
转载 best meeting point
There is an infinite integer grid at which N people have their houses on. They decide to unite at a common meeting place, which is someone's house. From any given cell, all 8 adjacent cells are reac
2012-11-18 22:52:23 703
Learning to Rank for Information Retrieval and Natural Language Processing
2012-05-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人