面试题
shangguan_1234
这个作者很懒,什么都没留下…
展开
-
【面试题】五道面试题一
模拟实现栈的push/pop/min功能#include#include#include using namespace std;templateclass MyStack{public: MyStack() {} ~MyStack() {}public: void Push(const T& x) { s1.push(x); if (s2.empty原创 2016-09-27 17:33:20 · 246 阅读 · 0 评论 -
【面试题】剑指offer11
实现函数Power(double base,int exponent),求base的exponent次方原创 2017-03-02 17:49:18 · 302 阅读 · 0 评论 -
【面试题】剑指offer 12
输入n,打印1到最大的n位数//#include//#include//using namespace std;////void Print1ToMaxOfNDigits(int n)////{//// int num=1;//// int i=0;//// while (i++<n)//// num*=10;//// for(i=1;i<num;i++)//// {//原创 2017-03-03 16:32:04 · 366 阅读 · 0 评论 -
【面试题】剑指offer 13
在O(1)时间删除链表节点listnode.h#include#includeusing namespace std;struct ListNode{ int _value; ListNode* pNext;};class List{public: List() :pHead(NULL) {} ~List() { delete pHead; pHead=原创 2017-03-03 16:35:41 · 260 阅读 · 0 评论 -
【面试题】剑指offer18
题目: 输入两颗二叉树A和B,判断B是不是A的子结构。#include<iostream>using namespace std;struct BinTreeNode { int _value; BinTreeNode* _pLeft; BinTreeNode* _pRight; BinTreeNode(int x) :_value(x)原创 2017-03-08 21:02:19 · 269 阅读 · 0 评论 -
【面试题】剑指offer14
题目: 调整数组数据使奇数全部在偶数前面 解法一:void oddnumberfront1(int *arr,int length){ if (arr==NULL||length==0) { return; } int* first; int* last; first=arr; last=arr+length-1;原创 2017-03-06 16:16:24 · 388 阅读 · 0 评论 -
【面试题】剑指offer 19
题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像 代码#include<iostream>#include<cstdlib>using namespace std;struct BinTreeNode{ int _value; BinTreeNode* _pLeft; BinTreeNode* _pRight; BinTreeNode(int x)原创 2017-03-09 19:12:52 · 245 阅读 · 0 评论 -
【面试题】剑指offer20
题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例如: 1,2,3,4, 5,6,7,8, 9,10,11,12, 13,14,15,16 输出 1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 代码#include<iostream>#include<cstdlib>using namespace std;void Pr原创 2017-03-09 20:51:32 · 217 阅读 · 0 评论 -
【面试题】剑指offer 15
题目: 输入一个链表,输出该链表的倒数第k个节点。#include<iostream>#include<cstdlib>using namespace std;struct ListNode{ ListNode* pNext; int _value;};class List{public: List() :pHead(NULL)原创 2017-03-06 20:03:22 · 284 阅读 · 0 评论 -
【面试题】剑指offer21
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min,pop,push的时间复杂度都为O(1)#include<stack>#include<cassert>#include<iostream>using namespace std;template<typename T>class MyStack{public: MyStack()原创 2017-03-10 12:07:12 · 274 阅读 · 0 评论 -
【面试题】剑指offer 16
题目: 定义一个链表的头结点,反向输出链表#include<iostream>using namespace std;struct ListNode{ int _value; ListNode* _pNext;};class List{public: List() :head(NULL) {} ~List() {原创 2017-03-07 16:43:31 · 312 阅读 · 0 评论 -
【面试题】剑指offer 17
题目: 输入两个递增的链表,合并两个链表,并返回合并后的头结点#include<iostream>using namespace std;struct ListNode{ int _value; ListNode* pNext;};class MyList{public: MyList() :pHead(NULL) {} ~M原创 2017-03-07 17:32:16 · 308 阅读 · 0 评论 -
【面试题】剑指offer10
输入一个数字,输出这个数的二进制中1的个数#include#includeusing namespace std;//int numberof1(int n)//{// int count=0;// unsigned int flag=1;// while (flag)// {// if(n&flag)// count++;// flag=flag<<1;//原创 2017-03-02 17:44:24 · 210 阅读 · 0 评论 -
【面试题】剑指offer 9
输入n,输出斐波那契数列的第n个数的值f(n)=0 n=0 1 n=1 f(n-1)+f(n-2) n>1代码#include#include using namespace std;long long Fibonacci(unsigned int n){ if(n<=0) return 0; if(n==1) return 1原创 2017-03-02 17:41:40 · 215 阅读 · 0 评论 -
【面试题】五道面试题二
数组实现一个栈,并实现基本功能#include #include using namespace std;templateclass ArrayStack{public: ArrayStack(int size) :arr(NULL) ,len(size) ,top1(0) ,top2(len+1) { arr=new T[size+1]; } ~Arr原创 2016-09-27 17:35:26 · 245 阅读 · 0 评论 -
【面试题】五道面试题三
两个队列实现一个栈,并实现基本功能#include #includeusing namespace std;templateclass QueueStack{public: QueueStack() {} ~QueueStack() {} void Push(const T& x) { if (q1.size()>0) { q1.push(x); }原创 2016-09-27 17:36:45 · 215 阅读 · 0 评论 -
【面试题】五道面试题四
两个栈实现一个队列#include #include using namespace std;templateclass StackQueue{public: StackQueue() {} ~StackQueue() {} void Push_Front(const T& x) { s1.push(x); } T& Pop_Back() { if(s2.原创 2016-09-27 17:37:56 · 256 阅读 · 0 评论 -
【面试题】五道面试题五
判断出栈顺序的正确性(假设每个相同元素只出现一次)#include#include#include#include using namespace std;class IsTrueSack{public: IsTrueSack() :_str1(NULL) ,_str2(NULL) { } ~IsTrueSack() { if(_str1!=NULL)原创 2016-09-27 17:40:24 · 334 阅读 · 0 评论 -
【面试题】如何判断一个类是不是另一个的子类
听到这个题的时候我想到了当时的强制转化中有一种转换可以将父类指针转换为子类指针,我就试了以下,可以的,下面先简单介绍这种转换dynamic_cast用于将一个父类对象的指针转换为子类对象的指针或引用(动态转换)向上转型:子类对象指针->父类指针/引用(不需要转换)向下转型:父类对象指针->子类指针/引用(用dynamic_cast转型是安全的)1 . dynamic_cast只原创 2016-10-16 15:41:38 · 5370 阅读 · 0 评论 -
大数据面试题解决方案
1)给一个超过100G大小的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址?!解决方法将100G分成100份,将每个ip映射到相应文件中 ip_if=ip%100找出每个文件中的出现次数最多的一个ip再将100份里找出来的最多的一个放入一个哈希表中进行比较找出最大值2)与上题条件相同,如何找到top K的IP?如何直接⽤用Linux系统命令实现?原创 2016-11-09 19:24:15 · 1593 阅读 · 0 评论 -
【面试题】腾讯面试题之生成格雷码
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。给定一个整数n,请返回n位的格雷码,顺序为从0开始。递归实现#include#include#include#includeusing namespace std;class GrayCode{public:原创 2016-10-07 16:04:43 · 295 阅读 · 0 评论 -
【项目】内存池(对象池)
项目名称:内存池环境:VS2010内容:利用链表存数组的形式实现目的:系统中的new和delete调用比较消耗资源,设计一个相对消耗较小的对象池大致思想:一个链表指向空闲内存,分配就是取出一块来,改写链表,返回,释放就是放回到链表里面,并做好归并。注意做好标记和保护,避免二次释放,还可以花点力气在如何查找最适合大小的内存快的搜索上,减少内存碎片这里假设申请了12个字节大原创 2016-12-05 15:17:31 · 571 阅读 · 0 评论 -
【面试题】剑指offer 1
赋值运算符函数#include#include#include#includeclass Mystring{public: Mystring() {} Mystring(char* pData) { if (pData==NULL) { pData=new char[1]; pData[0]='\0'; } else { int leng原创 2017-03-01 16:52:01 · 469 阅读 · 3 评论 -
【面试题】剑指offer 2
题目:在一个二维数组中,每一行从左往右,每一列从上到下都是递增的,给任意值在数组只能查找该数#include#include#includeint getsize(int data[]){ return sizeof(data);}bool Find(int* matrix,int rows,int cols,int num){ bool found=false; if(m原创 2017-03-01 16:54:55 · 305 阅读 · 0 评论 -
【面试题】剑指offer 3
运行下面代码,结果?#include#include//#includeint main(){ char str1[]="hello world"; char str2[]="hello world"; char* str3="hello world"; char* str4="hello world"; if(str1==str2) { printf("str1 an原创 2017-03-01 17:04:17 · 534 阅读 · 0 评论 -
【面试题】剑指offer 4
实现一个函数将字符串中的空格替换为20%#include#include#includevoid myblank(char * str,int length){ if(str==NULL||length<=0) return; int orlength=0; //int orlength=0; int numblank=0; //int numblank=0; int原创 2017-03-01 17:07:06 · 327 阅读 · 0 评论 -
【面试题】剑指offer 5
输入一个链表的头结点,从尾到头打印链表#include#includeusing namespace std;class ListNode{public: ListNode(const int & x) :_value(x) ,_next(NULL) {} int _value; ListNode* _next;};class List{public: Lis原创 2017-03-01 17:09:55 · 225 阅读 · 0 评论 -
【面试题】剑指offer 6
输入前序遍历和中序遍历结果,重建二叉树BinTree.h//#include//#include//#include//#include //using namespace std;//struct BinTreeNode{// int _value;// BinTreeNode* _left;// BinTreeNode* _right;//};//BinTreeNo原创 2017-03-01 17:13:52 · 215 阅读 · 0 评论 -
【面试题】剑指offer 7
两个栈实现一个队列,并实现头删和尾删首先分析下当只需要尾插入时,只需要将数插入stack1,当需要头删时,需要将stack1中的数全部push到stack2中,然后在对stack2进行pop即可代码Myqueue.h#include#includeusing namespace std;templateclass MyQueue{public: MyQue原创 2017-03-01 18:14:36 · 259 阅读 · 0 评论 -
【面试题】剑指offer 8
统计数组中各个数字出现的次数#include using namespace std;void SortAge(int ages[],int length){ if (ages==NULL||length<=0) return; const int oldestage=99; int timesages[oldestage+1]={0}; for (int i=0;i<le原创 2017-03-01 19:48:00 · 178 阅读 · 0 评论