摘要:
问题:给出一个数组,元素有正有负,数组中连续的1个或者多个数组成1个子数组,每个子数组有1个和,求所有子数组和值的最大值,时间复杂度为O(n)解: 一:可以用穷举的方法求出这个最大值,只是时间复杂度是O(n^3),这中方法的代码如下int dphe(int a[],int len){ int i,j; int **he=new int*[len]; for(i=0;i=max) max=he[i][j]; for(i=0;iA[p,q]就不满足A[p,q]是子数组最大的了。所以,我们可以对A进行遍历,当遇到子数组的和是负值时,就可以抛弃整... 阅读全文
摘要:
题目:在1棵二叉树中,假设所有节点的值都不同,给定值x,打印值为x的节点的所有祖先节点解: 利用后续非递归遍历打印。后续非递归遍历中,当节点2次进栈2次出栈后要访问它,此时根据后续遍历性质,它的左右孩子都被访问过了,访问过这个节点后再下一个要访问的节点就是当前节点的父节点。代码如下/* *后序遍历 */#include#includeusing namespace std;typedef char Elemtype;typedef struct node{ Elemtype data; struct node* left; struct node* right;}Tree;typedef s. 阅读全文