- 博客(8)
- 收藏
- 关注
原创 字符串的排列
题目:输入一个字符串,打印出该字符串中所有字符的排列。 思想:(1)把字符串分为两部分:一部分i是字符串的第一个字符;另一部分是第 一个字符以后的所有字符,求这部分字符串的排列 (2)拿第一个字符和它后面的字符逐个交换 这是典型的递归思路 void Permutation(char* pStr) { if(pStr==nullptr) ret...
2018-10-05 22:52:35 100
原创 数组中重复的数字
题目:在一个长度为n的数组里的所有数字都在0~n-1的范围内,数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次,请找出数组中任意一个重复的数字。 思想:从头到尾依次扫描这个数组中的每个数字,当扫描到下标为i的数字时,首先比较这个数字(用m表示)是不是等于i。如果是,则接着扫描下一个数字;如果不是,则再拿它和第m个数字进行比较,如果相等,就找到了一个重复的数字(该数字在下...
2018-10-05 20:11:29 117
原创 从尾到头打印链表
输入一个了表的头节点,从尾到头反过来打印出每个节点的值 (1)非递归方法 第一个遍历到的节点最后一个输出,这这就是典型的“后进先出”,可以用栈实现这种顺序。每经过一个节点的时候,把该节点放到一个栈中,当遍历完整个链表的时候,再从栈顶开始逐个输出节点的值,此时输出的节点的顺序已经反过来了。 void PrintReversingly_Iteratively(ListNode* pHead) { ...
2018-10-05 17:22:58 111
原创 斐波那切数列
写一个函数,输入n,求斐波那契(Fibonzcci)数列的第 n项。 1.非递归方法 (1) long long Fibonacci(unsigned n) { int result[2]={0,1}; if(n<2) return result[n]; long long fibNMinusOne=1; long lo...
2018-10-05 15:54:10 464
原创 二叉搜索树的后序遍历序列
bool VerifySquenceOfBST(sequence[],length) { if(sequence==nullptr||length<=0) return false; int root=sequence[length-1]; //在二叉搜索树中左子树节点的值小于根节点的值 int i; ...
2018-10-05 14:44:36 95
原创 二叉搜索树的第k大节点
BinaryTreeNode* KthNode(BinaryTreeNode* pRoot,unsiigned int k) { if(pRoot==nullptr||k==0) return nullptr; return KthNodeCore(pRoot,k); } BinaryTreeNode* KthNodeCore(BinaryTreeNode* pRo...
2018-10-04 21:22:36 144
原创 判断平衡二叉树
bool IsBalanced(BinaryTreeNode* pRoot,int* pDepth) { if(pRoot==nullptr) { *pDepth=0; return true; } int left,right; if(IsBalanced(pRoot-&amp;gt;m_pLe...
2018-10-04 19:29:53 116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人