求和最大的连续子串

6-05 1,739 views

思路: 采用动态规划进行求解,令: maxSum[k]表示子串list{0,k}的最大连续子串和, maxSumIncludeK[k]表示子串list{0,k}中末尾为k的最大连续子串和, 则 maxS...
阅读全文 0

不使用加减乘除实现加法

6-04 1,877 views

思路: 例如: a=5,b=9,a+b=14 a转换为二进制形式为101,b转换为二进制形式为1001,其和转换为二进制形式为1110。 对于二进制形式的相加,可分两步进行操作...
阅读全文 0

线索二叉树:二叉搜索树转换为双向链表

6-03 3,016 views

对于二叉搜索树,可以将其转换为双向链表,其中,节点的左子树指针在链表中指向前一个节点,右子树指针在链表中指向后一个节点。 思路: 采用递归思想,对于...
阅读全文 0

根据二叉树的先序、中序遍历结果重建二叉树

6-03 1,819 views

先序遍历为:1 2 4 5 3 6,中序遍历为:4 2 5 1 6 3 思路: 先序遍历的第一个元素为根节点,在中序遍历中找到这个根节点,从而可以将中序遍历分为左右两个部...
阅读全文 0

验证栈的出栈序列是否正确

6-03 1,837 views

思路: 遍历出栈序列,对于其中任一元素k,查看当前栈是否为空,若为空或栈顶元素不等于k,则根据入栈序列进行入栈,直至入栈序列中的元素k入栈。若直至入栈...
阅读全文 0

求二叉树的镜像

6-02 1,939 views

思路: 采用递归的思想。对于根节点,若其左子树或右子树不为空,则互换左、右子树,然后对于左、右子树,分别递归上述处理方法,直至叶节点。 示例: 代码...
阅读全文 0

链表反转的递归和非递归

6-01 1,940 views

如题,给出链表反转的递归和非递归算法: C Node *reverse (Node *head) { Node *p1=NULL,*p2=NULL,*p3=NULL; if(...
阅读全文 0

多叉树的宽度优先搜索BFS

6-01 2,002 views

首先,选择一个合适的数据结构存储多叉树,我使用了“左孩子右兄弟”的方法,使用二叉树来存储多叉树,便于实现和遍历。 其次,宽度优先搜索时: 1.用队列(先...
阅读全文 0

最大公因子-辗转相除法

6-01 1,910 views

求两个数的最大公因子,使用“辗转相除法”。 原理如下:若r=a%b,则gcd(a,b)=gcd(b,r)。 简单推导: 因为r=a%b,所以a=bq+r,r=a-bq。 a=bq+r,能被b,r整除的...
阅读全文 0

求二叉树中两节点的最小公共父节点

6-01 1,989 views

求解思路: 采用递归,深度优先遍历,找到一个节点时,返回,逐层记录遍历方向,另一个节点 同,这样深度优先遍历后,可以找到这两个节点由根节点访问的路径...
阅读全文 0