mycode
damotiansheng
这个作者很懒,什么都没留下…
展开
-
求数组中出现次数大于数组长度一半的元素
// 求数组中出现次数大于数组长度一半的元素 /* n = 7, array=[3 10 3 10 2 10 10] the elem is 10 */ #include #include #include using namespace std; typedef struct Elem { int money; int cnt; struct Elem *next; }原创 2016-03-26 14:42:14 · 643 阅读 · 0 评论 -
面试题29:找出数组中出现次数超过一半的数字-基于partition函数以及分摊法
#include using namespace std; int partition( int a[], int low, int high ) { if( low >= high ) { return low; } int index = low - 1; for( int i = low, j = high; i < j; ++i ) { if( a[i原创 2016-05-28 20:43:33 · 653 阅读 · 0 评论 -
面试题50:二叉树中两个节点的最低公共祖先
#include #include #include using namespace std; typedef struct BtNode { int value; struct BtNode *lchild; struct BtNode *rchild; }BtNode, *Bitree; Bitree newBtNode() { Bitree p = new BtNode原创 2016-05-31 20:24:29 · 1075 阅读 · 0 评论 -
得到二叉树中从根节点到树中某一节点的路径
#include #include #include using namespace std; typedef struct BtNode { int value; struct BtNode *lchild; struct BtNode *rchild; }BtNode, *Bitree; Bitree newBtNode() { Bitree p = new BtNode原创 2016-05-31 20:19:46 · 6564 阅读 · 0 评论 -
归并排序
#include using namespace std; int combineSort( int a[], int low, int high ) { int ret = 0; if( NULL == a || low > high ) { cout high" << endl; ret = -1; return ret; } if( low == high原创 2016-05-31 09:08:53 · 383 阅读 · 0 评论 -
面试题47:不用加减乘除做加法
#include using namespace std; int Add( int num1, int num2 ) { int sum = 0; int carry = 0; do { sum = num1 ^ num2; carry = ( num1 & num2 ) << 1; num1 = sum; num2 = carry; }while( num2原创 2016-05-30 19:58:22 · 484 阅读 · 0 评论 -
面试题32:从1到n整数中1出现的次数
#include #include #include using namespace std; // 参考《剑指offer 面试题32:从1到n整数中1出现的次数 P174》 int powerOfn( int n ) { int result = 1; int cnt = 1; while( cnt <= n ) { result *= 10; cnt+原创 2016-05-29 11:45:56 · 397 阅读 · 0 评论 -
面试题31:连续子数组的最大和
#include using namespace std; long long getMaxSum( int a[], int low, int high ) { long long max = -INT_MAX - 1; long long sum = 0; if( NULL == a || low > high ) { cout high" << endl; m原创 2016-05-29 11:42:13 · 419 阅读 · 0 评论 -
面试题27:二叉搜索树按中序遍历原地转换为双向链表
#include #include #include #include using namespace std; typedef struct BtNode { char data; struct BtNode *lchild; struct BtNode *rchild; }BtNode, *Bitree; typedef struct Node { Bitree p原创 2016-05-27 18:22:27 · 1769 阅读 · 0 评论 -
面试题25:二叉树中和为某一个值的路径
#include #include #include #include #include #include #include #include #include #include using namespace std; typedef struct Node { int data; struct Node *lchild; struct Node *rchild;原创 2016-05-27 13:53:55 · 401 阅读 · 0 评论 -
面试题21:包含min函数的栈,面试题22:判断某一序列是否是出栈序列
#include #include #include #include #include #include #include #include #include #include using namespace std; // 判断pOut是否是pIn的出栈序列 bool isOutStackSeq( const char *pIn, const char *pOut )原创 2016-05-27 10:34:02 · 421 阅读 · 0 评论 -
n个元素进栈,输出所有出栈序列-卡特兰数-递归
#include #include #include #include #include #include #include #include #include #include using namespace std; void printAllOutStackSeq( queue inQueue, int n, stack st, queue out ) { if(原创 2016-05-26 17:46:03 · 8863 阅读 · 0 评论 -
大数乘法、大数加法实现
#include #include #include #include #include #include #include #include using namespace std; // 实现两个数的加法 // 判断一个字符串是否为有效的数 bool isValidNumber( const string &s ) { bool ret = true; int len原创 2016-05-26 14:22:04 · 695 阅读 · 0 评论 -
面试题12:打印1到最大的n位数-大数问题-递归实现多层循环
#include #include #include #include #include #include #include using namespace std; void printToMaxNdigits( int n ) { if( n < 1 ) { cout << "printToMaxNdigits func: err -1, n < 1 " << en原创 2016-05-26 08:47:39 · 886 阅读 · 0 评论 -
快速排序、求旋转数组最小数字
#include #include #include #include using namespace std; // 快速排序1 void quickSort( int a[], int l, int r ) { if( l >= r ) { return; } int i = l; int j = r; int mid = ( l + r ) / 2; i原创 2016-05-25 16:46:00 · 442 阅读 · 0 评论 -
二叉树非递归遍历、层次遍历、高度、节点数
// 参考大神所写 http://blog.csdn.net/hackbuteer1/article/details/6583988 #include #include #include #include using namespace std; typedef struct BtNode { char data; struct BtNode *lchild; struct转载 2016-05-24 20:32:06 · 2657 阅读 · 0 评论 -
依据先序和中序-重建二叉树
#include #include #include using namespace std; typedef struct node { int val; struct node* left; struct node* right; }Node, *Pnode; Pnode createBitree( vector &preSequence, vector &midSeq原创 2016-04-15 11:57:34 · 393 阅读 · 0 评论 -
c++实现二叉排序树-插入-删除-递归遍历
#include #include using namespace std; typedef struct Elem { int data; struct Elem *left; struct Elem *right; }Elem, *pElem; bool searchBitree( pElem root, int value, pElem *pInsert ) { b原创 2016-03-26 17:27:02 · 667 阅读 · 0 评论 -
字符串的全排列
#include #include #include #include #include #include #include #include #include #include using namespace std; // 打印pSrc的所有排列,pSrc中字符各不相同 void printAllSeq( int curLength, const char *pSrc,原创 2016-05-27 15:44:28 · 520 阅读 · 0 评论