摘要:
堆排序 Heap Sort 堆排序是一种选择排序,其时间复杂度为O(nlogn)。 堆的定义 n个元素的序列{k1,k2,…,kn}当且仅当满足下列关系之一时,称之为堆。 情形1:ki <= k2i 且ki <= k2i+1 (最小化堆或小顶堆) 情形2:ki >= k2i 且ki >= k2i+1 阅读全文
摘要:
bool hasSubTree(Bnode*parent,Bnode*son) { if(!son) return tree; if(!parent) return false; bool resul=false; //都相等 退出 if(patent->val=son->val&&left) el 阅读全文
摘要:
连续子数组的最大和: int findGreatSum(int*data,int len) { if(!data||len<0) return; int sum=0; int maxsum=0; int start=0; int end=0; for(int i=0;i<len;i++) { if( 阅读全文
摘要:
struct BtreeNode { int val; BtreeNode*pleft; BtreeNode*pright; } void findpath(BtreeNode*root,int target) { if(!root) { return; } vector<int>path; int 阅读全文
摘要:
1.层次遍历二叉树: 从上往下的层次遍历: struct TreeNode { int val; TreeNode*pleft; TreeNode*pright; } void PrintNodeatLevel(TreeNode *root,int level) { if(!root) { retu 阅读全文
摘要:
采用动态规划的思想解决。 int max(vector<int>s,int len) { int sum_max=0; int max=0; for(int i=0;i<len;i++) { if(i==0||sum_max<=0) { sum_max=s[i]; } else if(sum_max 阅读全文
摘要:
.erase()只是删除了元素内容,并不能改变容量大小; 举例: 35 void testvector()36 {38 vector v;39 v.push_back(1);40 v.push_back(2);41 cout << "v size = " << v.size() << " v cap 阅读全文
摘要:
C++中的内联函数主要是减少函数调用时的跳转。内联函数在编译时,会将此内联函数代码直接编译到调用函数之处。减少了一次函数调用时的跳转啊、数据压栈等操作。所以相比调用行数,内联函数的执行效率要相对高点。不过也正因为如此,所以最终生成的程序文件要稍微大点。所以,一般内联函数只用于只有一两句语句的、调用频 阅读全文
摘要:
//递归: 判断该树是否为平衡二叉树 方法一:调用上述函数求每个节点的左右孩子深度 [cpp] view plain copy print? bool IsBalanced(BinaryTreeNode* pRoot) { if(pRoot== NULL) return true; int nLef 阅读全文
摘要:
hashmap 线程不安全 允许有null的键和值 效率高一点、 方法不是Synchronize的要提供外同步 有containsvalue和containsKey方法 HashMap 是Java1.2 引进的Map interface 的一个实现 HashMap是Hashtable的轻量级实现 h 阅读全文