基础
Modberge
这个作者很懒,什么都没留下…
展开
-
辗转相除法
辗转相除法是一个比较重要的基础算法,掌握其原理和简单形式可以更快速的刷题 int gcd(int a,int b){ if(a<b) swap(a,b); return (a%b) ? gcd(a%b,b) : b ; } int gcd(int a,int b){ return (a%b) ? gcd(b, a%b) : b ; } 其计算原理依赖于下面的定理: (摘自百度百科) 定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。最大公约数(Greates原创 2020-05-18 09:31:41 · 330 阅读 · 0 评论 -
已知两序的建树问题
在PAT中,给出先序(或者后序)和中序遍历来构建一个树,是一种常见的问题。但是渣渣如我,一直不能很好的掌握其中的细节。下面我把AC代码贴在下面并进行逐句解析,掌握细节 才能在机试中从容不迫。加油! struct tree{ //树的数据结构 int left,right; int num; }node[maxn]; int in[maxn]; //中序遍历数组 int pre[maxn]; //前序遍历数组 int build(int ia,int ib,int pa,int pb){ //原创 2020-05-18 08:54:28 · 221 阅读 · 0 评论 -
C/C++ 中函数的地址传递和值传递
最初学习指针的时候这里就不是太清晰,后来发现坑终归是要补的,否则迟早掉进更大的坑里。 看到某位博主关于函数内地址传递和值传递的文章,感觉写的很不错,引文贴在下面,之后是我个人的一些理解。 https://blog.csdn.net/scrence/article/details/79835572 要想理解按值传递和按地址传递,首先要清楚什么是值和地址。 int a=1; //a的值是1 cout<<" a = "<<a<<endl; // a = 1 in原创 2020-05-14 09:33:39 · 848 阅读 · 0 评论