08 2014 档案

摘要:方法一:从根节点开始,将每层节点压入一个数组,cur代表当前访问节点,last代表下一层第一个节点,遍历数组可得层次遍历;代码: 1 #include 2 #include 3 #include 4 using namespace std; 5 6 template 7 class ... 阅读全文
posted @ 2014-08-31 20:16 chengcy 阅读(259) 评论(0) 推荐(0)
摘要:方法一:使用递归思想代码: 1 #include 2 #include 3 using namespace std; 4 5 int minValue(int t1,int t2,int t3); 6 int calculateStringDistance(string strA,int pAbe... 阅读全文
posted @ 2014-08-31 20:14 chengcy 阅读(212) 评论(0) 推荐(0)
摘要:题目要求输出“将”(A),“帅”(B)的所有合法位置,并且只能使用一个字节存储变量;解法一: 1 #include 2 using namespace std; 3 4 int main() 5 { 6 int i=81; 7 while(i--) 8 { 9 ... 阅读全文
posted @ 2014-08-28 14:07 chengcy 阅读(162) 评论(0) 推荐(0)
摘要:关于递归程序:递归程序结构包括三部分:递归出口、逻辑处理(需要处理的问题)、递归调用(衔接)。通过递归调用将问题转化为对子问题的解决,通过回溯完成原问题的解答;递归与数学归纳法:递归是数学归纳法在计算机程序中的体现。使用递归思想设计程序时,我们设置base case,并假设我们会获得n-1的结果,并... 阅读全文
posted @ 2014-08-24 15:04 chengcy 阅读(413) 评论(0) 推荐(0)
摘要:将源区间按照x坐标大小排序,然后进行合并,使用二分查找目标区间x,y坐标在源区间中的分布,若两者分布于同一连续区间,则区间重合代码: 1 #include 2 #include 3 using namespace std; 4 5 struct section 6 { 7 int low;... 阅读全文
posted @ 2014-08-23 13:35 chengcy 阅读(337) 评论(0) 推荐(0)
摘要:为实现O(1)的时间复杂度完成取队列中最大元素,使用maxStackItemIndex记录队列(使用两个栈实现)中最大元素下标,使用数组link2NextMaxItem[]记录数组中次大值的下标,这也就是使用两个栈(先进后出)模拟队列二不是直接使用队列(先进先出)的原因:先进后出可以保证当执行p... 阅读全文
posted @ 2014-08-23 13:32 chengcy 阅读(505) 评论(0) 推荐(0)
摘要:解法一:通过遍历得到(0:i)的LIS,时间复杂度O(N^2);具体思路于代码,如下: 1 #include 2 #include 3 using namespace std; 4 5 int longSub(int arr[],int n); 6 7 int main() 8 { 9 ... 阅读全文
posted @ 2014-08-20 14:34 chengcy 阅读(216) 评论(0) 推荐(0)
摘要:解法一:直接求解下标i~j的子数组和最大值;复杂度O(N^2);代码如下: 1 #include 2 using namespace std; 3 const int INF=1000000; 4 5 int maxSum(int arr[],int n); 6 7 int main() 8 {... 阅读全文
posted @ 2014-08-18 20:14 chengcy 阅读(157) 评论(0) 推荐(0)
摘要:当二叉树在某些情况下退化为类单链表时,它的查找、插入、删除运算复杂度将不再是O(logN)),解决问题的方法就是尽量维持树的平衡。节点的平衡因子定义为左子树高度减去右子树高度,AVL树中每个节点平衡因子为0,1,-1;具体代码: 1 #include 2 #include 3 using na... 阅读全文
posted @ 2014-08-17 16:06 chengcy 阅读(184) 评论(0) 推荐(0)
摘要:问题:给定整数N,求最小整数M,使得N*M的十进制表示中只含有1和0; 当M很大时,机器可能不能表示M,对问题转化:求以最小整数X,使得X的十进制表示中只含1和0,并且被N整除; 此问题必定有解;可参考:http://blog.csdn.net/spaceyqy/article/deta... 阅读全文
posted @ 2014-08-15 16:05 chengcy 阅读(219) 评论(0) 推荐(0)
摘要:方法一:使用快速排序划分函数partion将数组分为两组:sa和sb (1)若sa组的个数大于K,则继续在sa分组中找取最大的K个数字 。 (2)若sa组中的数字小于K ,其个数为num,则继续在sb中找取 K-num个最大数字 。 复杂度:N*log2(K); 类似快速排序... 阅读全文
posted @ 2014-08-13 10:59 chengcy 阅读(250) 评论(0) 推荐(0)
摘要:问题一:正整数N!的末尾有多少个零? 解法一:问题等价于N!因式分解中5的指数次数; 解法二:f(n)表示正整数n因式分解中5的指数的次数,f(n!)=k+f(k!) (k=n/5) 可证明见:http://15838341661-139-com.iteye.com/blog/188... 阅读全文
posted @ 2014-08-10 12:04 chengcy 阅读(261) 评论(0) 推荐(0)
摘要:解法一:若二进制末尾为1,则除以2余1;int count(int a){ int num=0; while(a) { if(a%2==1) ++num; a=a/2; } return num;}解法二:使用移位操作相... 阅读全文
posted @ 2014-08-09 20:41 chengcy 阅读(149) 评论(0) 推荐(0)
摘要:关于最长公共子序列:LCS是两个序列相似性的一种度量方法;若序列s1:2,5,7,9,3,1,2 s2:3,5,3,2,8则LCS为:5,3,2思路可参考:http://www.csie.ntnu.edu.tw/~u91029/LongestCommonSubsequence.html具体代码... 阅读全文
posted @ 2014-08-04 11:09 chengcy 阅读(357) 评论(0) 推荐(0)