自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

百度啊百度

突然就发现马上就要找实习了。。要拼命要拼命

  • 博客(143)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据库方面的面试题

1存储过程和函数的区别存储过程相当于一个脚本 是一系列sql语句的集合 针对某个特定的表函数是数据库已经定义好的方法 接受参数 返回某种类型的值 不涉及特定表2database transaction 数据库事务是什么?单个逻辑工作单元! 事务就是一种单个逻辑工作单元 这些操作要么全做 要么不做 四个特点原子性 要么做要么不做一致性 事务的运

2013-05-23 11:05:30 820

原创 剑指offer面试题48C++写一个不能被继承的类

/*在C#和java中分别有关键字sealed 和 fina表示一个类不能被继承 但是C++ 没有可以这么想 一个派生类 必须调用父类的构造函数和析够函数 如果父类把构造函数和析够函数定义成private了即便共有继承 private 的内容也在子类不可见这个类不能被继承 通过静态函数调用构造函数*/#include#includeusing namespace s

2013-05-21 18:43:25 903

原创 关于比较易错的字符串面试题的总结,不断更新

1C/C++把常量字符串放在一个单独的区域 不是堆和栈 再另一个叫文字常量区的地方当把相同的string常量赋值给不同指针 时 指针 这些指针其实指向同样的区域但是用常量内存初始化字符数组 就不一样了。比如char str1[]="gaolei";char str2[]="gaolei";char * str3="gaolei";char * str4="gaole

2013-05-21 13:45:04 982

原创 剑指offer面试题50!!!树中两个最低公共祖先

庆祝!!!最后一篇剑指offer系列博客!/*这本书,,终于看到最后一个题了。太激动了。这还是以面试的实际案例给出的当给除这个题目的时候 首先看是不是二叉树如果是bst 那直接找比一个小 比另一个大的如果说只说普通的树 先问有没有指向父亲的指针 有的话就相当与 两个链表的第一个重合节点么如果没有指向父节点的指针 那也好办 直接遍历 然后记录路径就行了最后两个路径的最后一个相同的点

2013-05-15 16:33:00 811

原创 剑指offer面试题49atoi函数的编写

/*这本书终于进入了最后一章。。太激动了这里的题目是一个特别寻常普遍的 写atoi 意思是 ASCII to Integer是面试实例 有很多经典的地方要注意的需要注意的地方1 检查是否是空指针2 如果是空指针 标记一个全局变量来区分 是得到0还是空指针3 如果是空字符串4 正符号的问题5 非法输入的问题6 边界值的问题*/#include#includeusing

2013-05-15 14:38:37 896

原创 剑指offer面试题47不用加剑乘除做加法,考虑加法的过程用位运算

/*这个就是用位运算模拟加法的过程 我们这么想 两个数相加先把对应位的数加起来 不考虑进位 加完后 再把进位都加上如果还产生进位的话 上一步加得的结果 再加进位 直到没有进位*/#include#includeusing namespace std;int Sum(int a, int b){ int sum,tmp; do{ sum=a^b;

2013-05-13 21:27:21 952

原创 剑指offer面试题46求1+2+..+n不能用乘除法和选择循环,多种发散思维方法

/*这题在实践中挺没意义的 但是很考察所谓发散思维 其中也加深了对虚函数 函数指针的理解一共几种方法 一一说吧*/#include#includeusing namespace std;class A{ public: A(){++n;sum+=n;} static int getsum() { return sum; }

2013-05-13 21:16:35 954

原创 剑指offer面试题45圆圈中最后一个数字,约瑟夫环模拟和数学解法

/*这题也是以前做ACM做的 模拟 还有一种是找数学规律 就是通过函数对应的。这题其实也没什么好写的 但是里面用了stl的list 我从来没用过。。*/#include#include#includeusing namespace std;int LastRemaining(int n,int m){ if(n<1 || m<1) return -1; int

2013-05-13 20:40:57 987

原创 剑指offer面试题44扑克牌的顺子

/*题意就是写一个函数 输入是一个数组判断这个数组是不是扑克牌的顺子 注意0可以代表任何数字三步 一 排序 二 统计0的个数三 看其余部门 相邻元素之间差多少*/#include#include#includeusing namespace std;int cmp(const void * p1,const void * p2){ return *(int *)p1

2013-05-13 20:08:25 670

原创 剑指offer面试题43 n个骰子的点数

/*题目是仍n个骰子 求各点数和出现的概率概率计算么,一共是6^n 。。。然后计算各点数和出现的次数一除就行了么但是这里 问题就在于怎么计算各点数出现的次数和。。一种是递归 一种是循环递归 肯定效率不好。。循环的话 想法很好。。*/#include#include#include#includeusing namespace std;const int maxn=6;/

2013-05-13 20:07:59 787

原创 剑指offer面试题42翻转单词顺序VS左旋字符串

/*书上书很多公司用这个题 特别大众化就是一个句里 反转所有单词的顺序 但是单词内部不能变可以通过两次反转 第一次全反了 第二次 把每个单词的再返回来刚才查了一下reverse函数 只能C++ 容器用啊。。所以还是自己写吧*/#include#include#include#includeusing namespace std;void Reverse(char * be

2013-05-11 16:47:13 662

原创 剑指offer面试题41和为s的两个数字VS和为s的连续正数序列

/*这种题目太眼熟了。。就是双指针的题目。比较有意思第一个算法 要求在有序数组中 找到和为s的两个数字 直接双指针一个从头一个从尾如果和比s大 尾巴往前如果和比s小 头往后*/#include#includeusing namespace std;void FindTwonum(int * arr,int len,int s){ int head=0,tail=len-

2013-05-11 15:49:20 858

原创 剑指offer面试题40数组中只出现一次的两个数字,异或好题

/*这个题目太精彩了。。还记得一年多以前做市赛预赛 遇到 数组中只有一个只出现一次的数字这回是两个数字出现了一次 其余出现了两次其实我们还是把思路往只有一个上想全部异或一遍 得到的是这两个数字异或的结果通过这个结果 我们可以把数组分成两部门,每个部分包括两个数字中的一个 和若干对数字。我们看这个数字 最高位的1.。。。肯定只属于两个数中的一个。。因为异或么。也就是说这两个数字 只有

2013-05-11 14:15:05 661

原创 剑指offer面试题 39 二叉树的深度和判断是不是平衡树

#include#include#include#includeusing namespace std;struct BinaryTreeNode{ int data; BinaryTreeNode * leftchild; BinaryTreeNode * rightchild; BinaryTreeNode(int t):data(t){}};

2013-05-11 13:35:30 818

原创 剑指offer面试题38 数在有序数组中出现的次数,二分找第一个和最后一个出现的这个数字

/*这题太棒了。。剑指offer是我大学生涯读过最好的一本书了。看到有序数组 找一个数肯定是想到二分 找到后 前后探查 看一共多少个。但这样前后探查 复杂度和遍历一遍一样 都是O(n) 肯定是不好的我们希望这个复杂度是logn 这样的话。。想到找到数组中第一个k和最后一个k那就是改一下二分的条件写两个二分 分别找第一个k和最后一个k找第一个的时候 如果找到了k 看是不是第一个 是就返

2013-05-11 10:36:07 736

原创 剑指offer面试题37 两个链表的第一个公共节点

/*彻夜未眠,因为牙疼。自己性格最大的问题,拖延。我不知道从什么时候起。现在等媳妇起床去修牙这颗牙 两年前就该修了。我拖到今天。期间痛苦了很多次 每次第二天不疼了 想想算了凡事尽早这本书快做完了,这道题也很熟悉了单链表 只要有一个公共节点 后面就全是一样的了所以书中说 保存两个栈 找到最后一对弹出节点相等的 就是第一个。我一想 这样白浪费两个栈的空间复杂度啊后面果然就提了更

2013-05-09 19:40:59 576

原创 剑指offer面试题36 数组中逆序对个数,hulu面试题,要求写代码发过去

这题还是改了挺久bug的。。/*这给题是李舵发给我文档的 hulu的面试题 要写代码发给我。。至于hulu是什么神一样的公司。。我也不知道了刚才百度了一下 是和youtube一样的视频公司。虽然还不怎么出名。这个题目 大概瞟了一眼书上的图 瞬间明白了。。其实就是一个归并排序的过程每次 对于两个待归并的数组,两个指针,从头开始扫描数组,每次选择一个排序如果是选了前面的 那没事儿如

2013-05-08 22:27:14 1314

原创 剑指offer面试题35第一个只出现一次的字符,用hash

/*很简单但是很不错的题目。 一类题目。。。就是简历字符的hash表 空间换时间给一个字符串 找出第一个 只出现一次的字符遍历两次数组 第一次遍历 完成hash表第二次 从前往后找遇到第一个只有一个的字符就是答案*//*#include#include#includeusing namespace std;char FirstNoRepeatingChar(char *

2013-05-08 09:46:09 550

原创 剑指offer面试题34丑数 做过不止一次的DP

/*第一次看这题也是一年前的事儿了。。那时完全想不出来那么经典的算法。丑数是另一个数的丑数*/#include#include#includeusing namespace std;int arr[3000];void init(){ arr[1]=1; int index=1; int index2=1; int index3=1;

2013-05-07 10:48:57 704

原创 剑指offer面试题33把数组排成最小的数,就是确定sort规则就可以了

/*下午亮点阿里云二面,一夜办梦办醒满脑子都是海量数据。。今天早早来图书馆 csdn居然挂掉 上不去了。。。还是再搞一道题目吧这个题就是给一个数组 用数组里面的所有数字拼起来 能得到的最小的数字是什么比如 3 32 321 得到是321323这题就想排序 就行了 排序规则 一个数字在另一个数字前面。把两个数字连起来 。。哪个方前面时小 就是哪个在前面。最后 书上还给了一段证明。就是

2013-05-07 10:48:24 539

原创 剑指offer面试题32从1到n整数中1出现的次数,找数学规律

/*从1到n的n个数字 十进制表示 1出现的次数 肯定是数学题找规律呗比如输入数字是21345 分而治之1-1345 1346-21345 先求第二段 万位是 一共1w个 然后再分称1346-11345 11346-21345 每段的四个数字中 其中一个是1 其余10^3所以一共两千 就这么分 这个代码 理解的将就吧。。。反正就是把数字拆分开求 又看了两便理解了。 书上有写错的地方

2013-05-06 20:57:57 742

原创 剑指offer面试题31连续子数组的最大和DP 做过N多次了

这个真没什么好说的了 。。本来都不想写了 为了博客的连贯吧。。还有注意写DP/*这个题目 如果面试碰到写代码 就要写DP的 这样一看就有DP基础*/#include#includeusing namespace std;const int inf=1<<30;int FindGreatestSumOfSubArray(int * arr,int len){ int *

2013-05-06 18:45:36 525

原创 剑指offer面试题30最小的k个数

/*这种题目一看就知道可以用partition算法做。。。 和上面一题几乎一样的的再敲一遍代码把 这种方法的弊端是 要改变原来的数组 还有一种O(nlogk) 的算法就是维护一个最大堆 这牙膏不改变原来数组但是堆。现在让我写 我已经写不出来了 就用有限队列就可以还可以用红黑数RBtree stl的set map 都是用红黑树的rbtree就是通过把节点分为红色和黑色两种颜色 然后一定

2013-05-05 21:32:54 641

原创 剑指offer面试题29 数组中出现次数超过一半的数字两种方法百度面试题

/*这题是李舵的百度面试题啊,终于看到这里了。第一种是基于partition算法如果数组有序 那么中间元素肯定是要找的因为数量超过一半啊我们有成熟的o(n)的算法求第k大的数 所以球第n/2大的数就行了*/#include#include#include#includeusing namespace std;int RandInRange(int a,int b){

2013-05-05 21:11:20 697

原创 剑指offer面试题28字符串的所有排列permutation

/*C++ 里面有这个函数 我也写过这道题目以前是数字 这里是字符而已这里用了一种新的思想 递归 交换第一个字符然后 后面做全排列*/#include#include#includeusing namespace std;void Permutation(char * str, char * begin){ if(*begin=='\0') cout<<str<

2013-05-05 16:58:05 593

原创 剑指offer面试题27BST转换为有序双向链表

/*这题目一看就是要递归 不能创建新节点这到题目应该是我做这本书目前位置 最卡的一道题了。。想了好久。但也怪自己浮躁把。主要思想convert函数 main汉斯调用的函数 主要就是创建last变量 然后 最后返回头指针convertnode 是重要的其实主要过程可以理解未一次中序遍历bst 得到有序的序列并且联系每次输入一个指针 先把左边的弄好 然后last记录了左边的最后 再把las

2013-05-05 16:36:42 673

原创 剑指offer面试题25二叉树中和为某一个固定值的路径

#include#include#includeusing namespace std;struct BinaryTreeNode{ int data; BinaryTreeNode * leftchild; BinaryTreeNode * rightchild; BinaryTreeNode(){}};void CreateBinaryTree

2013-05-04 16:45:36 479

原创 剑指offer面试题24判断一个序列是否为BST的后序遍历序列附加输入递归的创建二叉树

/*之前写的二叉树都是自己暴力创建的 这回写一个可以递归创建的 然后用-1表示NULL*/#include#includeusing namespace std;struct BinaryTreeNode{ int data; BinaryTreeNode * leftchild; BinaryTreeNode * rightchild; Binar

2013-05-04 15:08:13 590

原创 剑指offer面试题23 从上往下打印二叉树 就是广度优先遍历二叉树

这个太水了吧。。我都不好意思写博客。。为了这个系列的完整啊。。正好补齐了下午的 dfs二叉树 #include#include#include#include#includeusing namespace std;struct BinaryTreeNode{ int data; BinaryTreeNode * leftchild; Bina

2013-05-02 21:30:31 598

原创 剑指offer面试题22栈的压入弹出序列

/*记得有一种规律 如果如栈序列是有序的 比如1 2 3 4 5有一种规律的 忘记了但是这里不一定是有序的 就模拟了。规则是如果下一个要弹出的数字刚好是栈顶数字 那么直接pop如果不是的话 从如栈序列还有入栈的数字 压入栈 知道遇到这个数字*/#include#include#includeusing namespace std;bool IsPopOrder(const

2013-05-02 21:22:07 578

原创 剑指offer面试题21包含Min函数的栈 经典的百度面试题

/*多半年前就看过了 今天终于可以来挑战了自己定义一个栈的数据结构 里面包含得到最小值的Min函数 push pop Min 都是O(1)的没有空间要求,我们定义一个栈data 和一个 辅助栈mindata每次压入的时候 data正常压入,mindata则看当前的压入的值 如果小于最小值 那么mindata压入新的 否则mindata压入mindata的top 就是最小的所以 minda

2013-05-02 20:21:24 629

原创 剑指offer面试题20顺时针打印矩阵

/*这个题早就做过了 但每次记不住顺时针打印矩形。就找规律模拟的打印就行了把矩形看成若干个圈组成的 主要是分析 每次打印一圈*/#include#include#includeusing namespace std;void InitMap(int **map,int n,int m){ int k=1; for(int i=0;i<n;++i)

2013-05-02 19:40:35 581

原创 剑指offer面试题19二叉树的镜像和二叉树的前中后遍历递归和非递归算法

#include#include#include#include#includeusing namespace std;struct BinaryTreeNode{ int data; BinaryTreeNode * leftchild; BinaryTreeNode * rightchild; BinaryTreeNode(int t)

2013-05-02 18:28:43 1100

原创 剑指offer面试题18判断一个二叉树是否包含另一个的递归算法

/*这里比较蛋疼的问题就是建立这个二叉树 我是直接暴力建立的 如果要输入建立的话可以递归的创建 标记一个不会出现的值为NULL 比如-1 首先输入根节点然后输入左子树 如果输入-1表示左子树是空的。。。如果输入不是-1 那么递归的创建左子树。再递归的创建右子树*/#include#includeusing namespace std;struct BinaryTreeNod

2013-05-02 11:55:02 667

原创 剑指offer面试题17合并两个有序的单链表之后还有序(递归)

#include#includeusing namespace std;struct Node{ int data; Node * next;};void PrintList(Node * head){ if(head==NULL) printf("empty List\n"); Node * p=head; while(p!=NU

2013-05-01 10:29:55 508

原创 剑指offer面试题16 反转链表(递归和非递归,主要还是看代码的鲁棒性)

/*这题早就做过了,但是当时看的书上的代码真的很差,比其这本书差的不少。。剑指offer真是我大学看过的最好的书之一了反转链表 需要对链表进行遍历 每次对于遍历到的节点,先记录next,再next指向前一个,然后继续遍历 注意不要把链表弄段还有注意输入 最主要的是输入头节点NULL 的处理 测试数据要想到 只有一个节点怎么办 两个,多个怎么办 输入NULL 怎么办只要自己想到测试数据都过

2013-05-01 10:29:22 662

原创 剑指offer面试题15 链表中倒数第k个节点(又是双指针,重要的是代码鲁棒性)

/*前面一个学习了代码的扩展性 用函数指针。这本书其实一直在强调代码的鲁棒性 也就是健壮性主要是对输入非法数据的处理这里的鲁棒性 主要体现在三个方面1 输入空指针怎么办2 输入k小于等与0.3 输入的k比链表长度小*/#include#include#includeusing namespace std;struct Node{ int data;

2013-04-30 21:07:32 465

原创 剑指offer面试题14 调整数组元素顺序使得奇数在前半部分偶数在后半部分

这个自己相想了一个快排思想的 测试了 应该是没有问题。:-) 双指针用过很多次了。。这里最主要的一个问题是我第一次用函数指针 主要针对可扩展性的/*这题也是自己一下子就想到了 一个是双指针 一个是快排的思想。。标准解法是双指针,但是这里提到了一个非常重要的问题就是扩展性 如果面试官问 不按奇数偶数排序 而是按照 正负呢 如果按照 是不是三的倍数呢?这里就要用函数指针了。。。好激动啊。。第一

2013-04-30 19:31:12 546

原创 剑指offer面试题13在O(1)时间复杂度内删除单链表的一个节点

今天遇上奇怪的事情了。。codebloks运行不了 说sh: .....upexpected ( 我找了半天bug 最后发现竟然连helloword程序都执行不了后来我觉得 会不会是 project命名的里 O(1) 然后试着把括号去掉。。居然就行了 后来又建工程加上括号 又是那个错。。太尼馬诡异了。。。还有就是 linux里面 EOF  是ctrl+d 不是C 记得windows里是

2013-04-30 17:13:55 721

原创 剑指offer面试题12 打印从1到最大n位的所有数(大数,递归)

/*初看觉得很水 不过就是个大数么 但是突然发现很有收获 就是自己想*/#include#include#includeusing namespace std;bool NumberAdd(char * num)//不是最后一个数返回0 继续加 否则返回1 表示到了头{ bool isOverflow= false;//判断是不是到了最后一个数字 只要看最高位是不是有

2013-04-30 16:17:59 604

数据结构与算法所有源代码

我是软件工程专业本科二年级学生,刚学完数据结构与算法,这是我所有的上机代码,上机成绩是满分,所以这些代码没什么问题 ,全部在VS2010上编译通过,希望对刚接触数据结构的同学们有帮助~

2012-01-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除