摘要: 题目大意是先序遍历二叉树,深度优先搜索 1,使用递归 2,使用栈 使用递归的代码如下 阅读全文
posted @ 2016-04-10 18:02 shijiwomen 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题目大意是按层输出节点的值。 主要考虑的是如何判断换层了 1,在最左边的节点做标记 2,使用递归层级就是标记 以下代码是左边节点做标记的 以下代码是层级标记的 阅读全文
posted @ 2016-04-10 17:59 shijiwomen 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 1,思考问题时一定要发散,基于固有的经验 2,解题思路 a,数据结构(容器) b,基本算法(搜索,匈牙利,并查集,动态规划,网络流) c,基本算法思想(贪心,分支) 3,本题刚开始想的是用快排后使用map,复杂度是O(n2),超时,代码如下 4,后来看的网上解法,左右夹逼的方法,也是O(n2) 阅读全文
posted @ 2016-04-02 12:12 shijiwomen 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 1,暴力搜索O(n2) 2,使用map直接查找O(n) 3,使用map排除两个相同值相加等于目标值的情况,并记录初始的位置,然后使用快排,最后使用二分查找 注意:这里最快的方法是2,一定要注意数据结构的应用STL的使用,unordered_map比map的查找速度更快 阅读全文
posted @ 2016-03-26 10:02 shijiwomen 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 这题是在32. Search in Rotated Sorted Array I的基础上,处理特殊情况有重复数据的问题,有两个代表例子 如3,1,1和1,1,3,1只需在原基础上考虑这两种请求,完善上一题的分类思想,还有就是二分查找的迭代会完成接 下来的事情 阅读全文
posted @ 2016-03-24 07:42 shijiwomen 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 在类似有序序列7,8,9,0,1,2,3,4中查找一个给定的数,没有重复数字 1,顺序查找 2,二分查找 类似序列的特点是由一个最大数分成了两个有序序列,例如例子中是9把原序列分成了7,8,9和0,1,2,3,4,而二分查找的特点是数列必须有序,而且中间值特别重要 这里用到了分类讨论,总共有两层分类 阅读全文
posted @ 2016-03-23 14:57 shijiwomen 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 2000:1,C++,algorithm头文件的引用,swap函数,algorithm中还有通用的copy(),find(),remove(),count(),serch() 2,模板类 3,传值,传址,传指针,传引用 4,STL学习 5,GetTickcount函数 2001:1,C的格式化输出控 阅读全文
posted @ 2016-03-10 11:28 shijiwomen 阅读(102) 评论(0) 推荐(0) 编辑
摘要: #include #include using namespace std;int main(){ stack s; char a[100],b[100]; int i,j,n,l,f[100]; while(cin>>n>>a>>b) { l=0; i=0; j=0; s.push(a[i]); f[l++]=1; while(i<n&&j<n) { if(s.size()&&s.top()==b[j]) { s.pop(); j++; f[l++]=0; }else{ s.push(a[++i]); f[l++ 阅读全文
posted @ 2014-03-11 17:06 shijiwomen 阅读(469) 评论(0) 推荐(0) 编辑
摘要: /*Sample code to read in test cases:*/#include <stdio.h>#include <stdlib.h>#define NUM 1024int main(){ FILE * pFile; char mystring[NUM]; char sysInputFile[] = "{sysFileUrl}"; int sum; pFile = fopen(sysInputFile, "r"); sum=0; while (fgets(mystring, NUM, pFile)) { if (m 阅读全文
posted @ 2013-03-18 08:14 shijiwomen 阅读(129) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>#include<cstdio>#include<string>using namespace std;int main(){ int n,i,num,nums,j,k,max; string s; k=1; while(scanf("%d",&n)!=EOF) { max=0;//注意细节,想不通时仔细查看源代码 for(i=1;i<=n;i++)//价值计算 { cin>>s; num=s.length(); nums... 阅读全文
posted @ 2013-03-17 07:54 shijiwomen 阅读(135) 评论(0) 推荐(0) 编辑