- 博客(15)
- 资源 (14)
- 收藏
- 关注
原创 第13题 check rotation string
此题来自cracking the coding interview,这本书是讲如何准备程序员面试的,非常不错免积分下载:http://download.csdn.net/detail/stevemarbo/4098275assume you have a method isSubstring which checks if one word is a sub
2012-02-28 23:28:53 1250
原创 二叉树详解 binary tree && binary search tree
本文参考stanford大学一位计算机教授所写的关于二叉树的文章:http://download.csdn.net/detail/stevemarbo/4097865二叉树,一个经典的数据结构,它包含一个指向左子树的指针,一个指向右指数的指针,和一个数据元素二叉搜索树,在二叉树的基础上,它的左子树的值都小于它,它的右子树的值都大于它树本身就是一个递归定义
2012-02-28 22:28:08 8351
原创 第12题 判断两个链表是否相交
题目:判断两个链表是否相交分析:如果被问道此问题,一定要分两种情况回答,第一种是链表不存在环,第二种就是存在环的情况1. 先判断带不带环2. 如果都不带环,就判断尾节点是否相等3. 如果都带环,判断一链表上俩指针相遇的那个节点,在不在另一条链表,如果在,则相交,如果不在,则不相交struct node { int data; struct node*
2012-02-27 18:34:38 755
原创 第11题 求链表倒数第k个节点
题目:输入一个单向链表,输出该链表中倒数第k个节点链表的倒数第0个节点为链表的尾指针设置两个指针 p1,p2,首先,p1和p2都指向head,然后p2向前走k步,这样p1和p2之间就间隔k个节点,最后p1和p2同时向前移动,直至p2走到链表末尾struct node { int data; struct node* next;}struct node* fi
2012-02-27 17:55:25 437
原创 第10题 把二元查找树转换成排序的双向链表
题目:把二元查找树转换成排序的双向链表要求:不能创建任何新的节点,只调整指针的指向 10 / \ 6 14 / \ / \ 4 8 12 16转成双向链表4=6=8=12=14=16关于此题, 有一篇非常详细的文档,把这个问题讲述的非常清楚,英文好的朋友可以看
2012-02-27 17:14:09 650
原创 Linked List 链表详解
本文是stanford cs library中两篇关于linked list的文章合体版linked list basicslinked list problems我觉得这两篇讲linked list的文章写的非常非常好,所以在博客里自己写一下,也算是温习巩固数据结构的知识了本文代码下载:http://download.csdn.net/detail/stevemarbo/
2012-02-26 04:32:06 16708 1
原创 第9题 求整数的二进制表达式中1的个数
题目:输入一个整数,求该整数的二进制表达式中有多少个1例如,输入10,由于其二进制表示为1010,有两个1,因此输出2此题考察位运算,微软曾经用过这道题xxxx1000 & (xxxx1000-1) = xxxx0000#includeint count1(int n) { int c=0; while(n!=0) { n = n&(n-1)
2012-02-24 09:02:25 738
原创 第8题 把字符串转换成整数输出
题目:输入一个表示整数的字符串,把该字符串转换成整数并输出例如,输入字符串“123”,则输出整数123,输入字符串“-456”,则输出整数-456,输入字符串“a123”,则输出 illegal number#include#includeint strtoint(char* str) { int neg=1; char* p = str; if(*
2012-02-24 08:49:14 754
原创 第7题 倒置一个链表
题目:利用递归倒置一个链表此题非常常见,因为很多公司在出面试题的时候,会考察面试人员的数据结构知识和算法知识,而有关链表的题是最具代表性的了。这种题目不是非常难,适合做面试题,但又不简单,如果不提前做好准备,真正到了面试时,很难能做出来#include#include#include#includestruct node { int data;
2012-02-24 02:18:56 696
原创 第6题 约瑟夫环问题
题目: n个数字 (0,1,2,3, ... , n-1) 形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字。第一个为当前数字本身,第二个为当前数字的下一个数字。当一个数字删除后,从被删除数字的下一个继续删除第m个数字此题目的另一种表述是:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人
2012-02-23 19:21:54 1459 3
原创 第5题 在一个字符串中找到第一个只出现一次的字符
题目:在一个字符串中找到第一个只出现一次的字符。例如输入 abaccdeff ,则输出b此题据说是2006年google的一道笔试题假设全都是ASCII码,也就是说一个字符对应一个相应的整数#include#includechar first_single_char(char* str) { int ascii[255]; memset(
2012-02-23 18:05:18 615 2
原创 第4题 颠倒一个句子中的词的顺序
题目: 颠倒一个句子中的词的顺序,比如: I am a student颠倒后变成:student a am I此题紧接着第3题,不过要把第3题的函数做一定修改#include #include char* reverse(char* str, int n){ int end = n - 1; int start = 0; while(start
2012-02-23 10:52:27 3793
原创 第3题 reverse字符串
颠倒一个字符串。优化时间,优化空间。此题也就是字符串倒置,类似的问题经常在面试中出现,我在stackoverflow上查到一个很不错的方法#include #include char* reverse(char* str){ int end = strlen(str) - 1; int start = 0; while(start<end) {
2012-02-23 10:29:29 817
原创 第2题 求子数组最大和
求子数组的最大和题目:输入一个整形数组,数组里有正数也有负数数组中连续的一个或多个数组组成一个子数组,每个子数组都有一个和求所有子数组的最大值,要求时间复杂度为O(n)例如输入的数组为 1, -2, 3, 10, -4, 7, 2, -5最大的子数组为 3, 10, -4, 7, 2因此输出为该子数组的和 18#includei
2012-02-23 09:54:24 447
原创 第1题 在排序数组中查找和为某个指定数的两个元素之和
题目:输入一个已经按照升序排序过得数组和一个数字,在数组中查找两个数,使得他们的和正好是输入的那个数字要求时间复杂度是O(n),如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组 1,2,4,7,11,15和数字15由于4+11 = 15,因此输出4和11#includevoid find2Number(int a[], int n, in
2012-02-23 05:37:14 1057
Linked List Problems 链表 习题
2012-02-25
子数组最大和 Maximal Contiguous Subsequent Sum Problem
2012-02-23
计算机网络课件 modern networking concepts
2011-12-10
算法分析与设计 Algorithm Analysis Design 课件
2011-12-10
操作系统 operating system 课件
2011-12-10
linux下c语言实现多线程web服务器
2011-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人