- 博客(140)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
转载 用c/c++写一个堆栈管理程序
这是一个面试题,那个狗日的面试官让我当场写出来,我要是能写出来也得累出血了。感谢原文作者的贡献,文中还有小错误,会尽快改正。头文件:#ifndef _KSMFMemory_#define _KSMFMemory_#ifndef KCAHR #define KCHAR char#else #define KCHAR short#endif#ifdef _cplusplus
2012-09-27 11:06:37 1619
转载 求矩形交集的面积
转载牛人的文章并不是为了假借他人的才能来炫耀自己,个人是为了能够在想起该问题的时候看着方便,不用到处去找,积累下来。以后是原文的出处,此人为牛人。http://blog.csdn.net/v_july_v/article/details/7974418#comments在一个平面坐标系上,有两个矩形,它们的边分别平行于X和Y轴。其中,矩形A已知, ax1(左边), ax2(
2012-09-22 21:07:37 2862
原创 原有一组数据区间段,给定一个区间,判断此区间是否和其他区间相交
此题为海豚浏览器的一个笔试题,当时做的时候感觉挺难,没想出来,后来考完试回来一想,觉得自己太粗心大意了,既然一个不太难的题都没有想到,追悔莫及。用一句话来表达自己对编程的理解:coding as saying~例如给定三个区间:(2,4) (5,6) (7,9)然后又输入一个区间 :(3.5,5),则可以断定此区间和上述区间中 (2,4)有相交区间。在此多说一句,此问题我们不考虑
2012-09-22 20:28:23 8047
原创 找出字符串中最长的数字字符串
要求,给定一串字符串,找出其中最常的数字字符串。比如,给定字符串abc123bcd234567d,则最终结果输出为234567。#include#include#includechar* get_max_num_string(char *str){ char *begin; char *temp,*final; int count; int maxLen=0; begin
2012-09-22 19:19:33 1646
原创 给定一个数字的十进制形式,求出用二进制表示次数时,其中bit位为1的个数
此问题我知道有两种的解答方法,一个是通过移位,一个是通过&。1,#includevoid main(){ int a=16; int count=0; while(a>0) { if(a&0x1==1) count++; a=(a>>1); } printf("%d\n",count);}上面是通过移位的形式,很容易理解。2,是通过与的形式,即把va
2012-09-22 19:04:14 1768
转载 给定一整型数组,若数组中某个下标值大的元素值小于某个下标值比它小的元素值,称这是一个反序。
感谢此博客:http://blog.csdn.net/luno1/article/details/8001892作者,作者提供了很好的解题思路,下面给出作者所提到的两种方法的代码,从中可以看到如果不应用归并排序,那么时间复杂度就是1+2+....+n-1,即为O(n^2).而第二种方法就是O(nlogn).下面给出代码。通过对两个方法的同时调用,得到的结果是一致的,说明应用归并排序求得的结果正确。
2012-09-22 15:33:31 2713
原创 给定字符串,要求除去字符串中重复出现的字符
请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。笔试会碰到这种题目,有的题目要求会多一条,就是不许重新分配存储空间来临时存储字符串,即节省空间的原则。综合两个博客的研究结果(http://blog.csdn.net/luno1/article/details/7945227,http://blog.csd
2012-09-22 13:23:08 2816
原创 一个数组里,数都是两两出现的,但是有三个数是唯一出现的,找出这三个数。
这个题我用的是trie索引树,不知道对不对,但是我写完程序运行后结果是对的,先贴上程序,一起探讨:#include#include#include#define branch_num 10typedef struct trie_node{ int count; struct trie_node *child[branch_num];}TrieNode,*TrieTre
2012-09-22 10:32:53 1749
原创 求文件中单词出现的频数
一、主体思路: (1)建立一个hash表; --(a) hash函数:除留取余法,H(key) = key % size; --(b) 解决冲突的方法:链地址法,将所有映射到相同索引的字符串用链接指针连接在一起。 (2)读取文本文件word.txt,每次读取一行,然后分隔每个单词,插入到hash表,插入过程中会对单词出现次数统计;
2012-09-19 21:30:25 2015
原创 输入一个安升序排列的数组和一个数,在数组中找两个数,使它们的和正好是给定的那个数。o(n)
此题要求在O(n)时间内求得结果,具体思路为,设定两个指针,一个指针first指向数组的第一个元素的位置,另一个last指向数组最后一个元素的位置。首先计算sum=*first+*last,将计算的结果和给定的数进行比较,假设给定的数位dest,如果sum大于dest,那么可以根据给定数组按升序排列的性质分析出,肯定是因为数组的最后一个元素的关系,要找一个比last指向的元素小的数,那么指针就要向
2012-09-19 21:28:39 4938
原创 反转句子中单词的顺序。
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。一个比较好的思路是将给定句子中的所有字母进行反转 成:!margorp xunil evol I,然后再对给定的每个单词进行反转,程序:#include
2012-09-19 21:27:15 3424
原创 sizeof问题
void Func(char str_arg[100]) { printf("%d\n",sizeof(str_arg)); } int main(void) { char str[]="Hello"; printf("%d\n",sizeof(str)); printf("%d\n",strlen
2012-09-19 21:26:18 2319
原创 给定先序:ABCDEFGHIJK 给定中序:CBEDGFAHJIK 首先分析上述给定的先,中序,首先得知先序遍历的肯定是二叉树的根节点:A,在看中序遍历,根据中序遍历的原理可知,在A左边的一定全部属于
给定先序:ABCDEFGHIJK给定中序:CBEDGFAHJIK首先分析上述给定的先,中序,首先得知先序遍历的肯定是二叉树的根节点:A,在看中序遍历,根据中序遍历的原理可知,在A左边的一定全部属于A的左子树,在其右边的肯定属于其右子树。再看序列,先序:BCDEFG,中序:CBEDGF,可以把这两个序列作为遍历一个树的结果,那么同理可知B肯定是此树的根节点,二C属于此树的左子树部分,
2012-09-19 21:23:01 2241
原创 使用trie树统计单词出现的频数
首先给出trie树的原理:trie树是以空间换取时间,利用字符串的公共前缀来降低查询开销。举个例子:add,addition,这两个单词,他们的公共前缀是add,应用trie数进行存储的时候,add只会被存储一次,如果以add为前缀的单词很多,这样就节省了很多的存储空间。trie树的性质:1,字符种数决定trie中branch的个数,以单词为例,共有26个英文单词,那么每个节点中会有26个
2012-09-18 16:05:14 3847 2
转载 一个字符串转化为整数
http://blog.csdn.net/v_JULY_v/article/details/6347454(原博文地址)将字符串转化成数字要考虑很多问题:1,字符串是否为空;2,字符串的开头有可能不是数字的字母形式,而是‘+’或者'-';3,字符串中有可能不是数字对应的字母;4,字符串转换之后有可能越界。下面给出代码:比较欣赏的是其中的assert.#include#include
2012-09-16 21:41:26 538
转载 判断两个字符串是否匹配
原文地址:http://blog.csdn.net/v_JULY_v/article/details/6347454。同时也向大家推荐这个文章的博主,技术大牛。如果两个字符串中所含字符的个数和对应的字符都相等,我们说这两个字符串匹配,比如:abcdea,aabcde。则这两个字符串相等。特别喜欢这个方法,故转到我空间来,以便记录。#include #include usin
2012-09-16 21:32:22 4676
原创 求两个单链表的交点
这个面试经常会碰到的题目,判断两个单链表是否相交。个人理解的也不是很深,零零散散的从网上找答案,并把所偶看到的整理了一下,希望对大家有帮助。判断两个单链表是否相交共有三种情况:1,两个单链表都没有环。2,两个单链表中 一个有环,一个没有环。3,两个链表都有环。看第一种情况,连个单链表相交,只能是y型相交,不可能是x型相交,理由如下,有两个链表,La,Lb,他们的交点设为p吧,假
2012-09-16 16:55:39 8420
原创 求旋转数组的最小元素(把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3
求旋转数组的最小元素(把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。解题思路:首先,想到得思路肯定是把这个数组进行右旋转(要理解旋转的概念,就是比如说:abcdef,要进行右旋2位,那么移动后的结果为efabcd)
2012-09-16 15:12:28 2308
原创 优酷土豆合一网题---构造函数和虚构函数的顺序
class B{public:B(){cout}~B(){cout}};struct C{public:C(){cout}~C(){cout}};class D:public B{private:C c;public:D(){cout}~D(){cout
2012-09-13 16:24:31 855
an efficient implemention of double array trie
2013-01-06
shared ptr可以从boost库中单独提出来吗
2015-06-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人