- 博客(20)
- 收藏
- 关注
原创 《代码随想录》二叉树总结
中序遍历后序遍历题目:二叉树的迭代遍历前序遍历中序遍历中序遍历不需要像前序遍历一样对每个结点都单独的去判断是不是空,但其实是在循环里面判断的,即后序遍历题目:二叉树的层序遍历题目:翻转二叉树前序 递归中序 递归最后该遍历右子树的时候,因为交换了,所以还是左子树后序 递归前序 迭代中序 迭代注意最后那里,而不是,因为之前已经交换了嘛后序 迭代和前序一样题目:对称二叉树递归迭代 用栈实现每次放两个,仍然进行一样的比较,需要注意,如果两个结点为空,不是t
2022-09-03 17:41:30
144
原创 《代码随想录》哈希表——解决 判断一个数是否出现过 的问题
三树之和 和刚刚的 四数之和II 就不一样了,现在他就要不重复的三元组了,而不是要count,如果要count,那就只需要记录个数字就行。其实还可以优化的地方,就是你不能在循环的时候直接写个26,这就是magic number了,其实应该把table写成一个vector。哈希表是无序的时候,优先用unordered_map,和unordered_set,这样底层是哈希表,效率高。只需要存一个数的时候,用set作为哈希表。但这里要注意的是,while循环中的。有明显的范围的时候,用数组作为哈希表。......
2022-08-27 11:58:28
75
原创 《代码随想录》链表部分
int val;} //严谨的角度来说其实还差一个拷贝构造函数,这里因为是要从堆上申请内存,拷贝构造应该采用深拷贝的方式,析构时才不会出现重复释放的问题 };有三个题都加了,第一个是 删除链表中的指定元素 第二个是 两两交换链表中的结点 第三个,删除链表中的倒数第N个元素可以发现这个规律,但凡是要涉及到通过前一个结点才能对这个结点做操作的,这时候加虚拟头结点就比较方便。............
2022-08-26 12:37:10
41
原创 《代码随想录》——数组部分
考虑双指针的原因是因为他们本身是有序的,但是如果平方以后就变成了这组数是两端大中间小的了,因此我们两端各自定义一个指针,比出来大的就放到新数组的最后一个。他说什么就是什么,先乘,然后直接调用sort,一步到位,但是这样复杂度高,是快速排序的复杂度,但这时候发现if中没有东西了,于是发现其实只需要写 不等于 的情况就可以,再次修改。没啥可说的,而且似乎有个很长的用例用carl的源代码也过不去,先知道思想吧。,提到外面,就变成了下面的代码,或者再把。则可直接写出以下代码。,放进括号中,变成了。...
2022-08-25 22:07:30
31
原创 C语言第八章——指针(二)
C语言第八章——指针(二)指针运算动态内存分配详细介绍怎么用malloc能给我们分配多大的空间指针运算注:之前已经说到,把数组赋给指针以后,可以拿数组像指针一样操作,也可以拿指针像数组一样操作//数组像指针一样操作char ac[]={0,1,2,3,4,5,6,7,8,9};int *p=ac;int *p1=&ac[5];//指针像数组一样操作*p->ac[0]*(p+1)->ac[1]*(p+n)->ac[n]//*(p+1)要加括号是因为*是单目运算
2021-10-20 11:38:22
154
原创 C语言第八章——指针(一)
C语言第八章——指针取地址运算——&变量取地址数组取地址指针运算——*作为参数的指针访问那个地址的变量指针的使用场合指针和数组四种函数原型取地址运算——&变量取地址&后面必须有明确的变量,&(i+k)和&(i++)都是不行的数组取地址指针运算——*作为参数的指针访问那个地址的变量指针的使用场合指针和数组四种函数原型数组是特殊的指针...
2021-07-25 21:16:57
383
原创 5第三章程序练习《循环结构练习2——猜数游戏》
5第三章程序练习《循环结构练习2——猜数游戏》猜数游戏生成随机数猜数游戏猜数游戏改进版猜数游戏生成随机数猜数游戏猜数游戏改进版
2021-07-13 21:44:57
582
原创 4第三章程序练习《循环结构程序练习》
4第三章程序练习《循环结构程序练习》《求一组数的平均数》《两个数求平均》《三个数求平均》《n个数求平均》《倒计时3 2 1 发射!》《log2 x》和《正整数数位数》《log2 x》《正整数数位数》《求一组数的平均数》这个问题可以使用2第二章程序练习《比较得出一组数的最大值》的分析和归纳的思路,分别从《两个数求平均》《三个数求平均》《n个数求平均》来做整理,代码本身是简单的,重点是分析的过程,以及代码要很熟悉《两个数求平均》下面是非常容易想到的思路,因此不做过多的解释#include<std
2021-07-13 21:30:07
73
原创 3第二章程序练习《百分制成绩转换为字母等级成绩》
百分制成绩转换为字母等级成绩级联的if else ifswitch case的写法总结注:须知这里重点练习和比较的是级联的if else if和switch case语句问题说明:输入百分制成绩,90分以上属于A,80以上属于B,70以上属于C,60以上属于D,60以下属于E级联的if else if这是天然的分段函数,因此非常适合用级联的if else if,代码如下,仅仅需要注意下面问题即可大于号来判断是从大到小,用小于号来判断是从小到大 grade_100>=80也是80<=g
2021-07-13 11:06:00
1945
原创 科研01——获取文章
关于获取文章那些事儿查文章下载文章查期刊水平番外篇:具体查某个作者的文章附上以上渠道的链接:引子:对于刚刚要入门一个领域来说,好的方式应该是看博士论文,没什么原因,仅仅因为是中文的,比较好懂看英文综述大量看这个领域的英文论文关于查中文的文章:一般来说学校图书馆都有相关的资源,比较常见的知网和万方都是可以获取到的,因此这篇文章主要讲的是英文文章的获取查文章渠道:google scholar文献部落说明:应该来说,靠着google scholar查文章是足足够的,但是考虑到有时候挂
2021-07-12 21:58:02
89
原创 2第一章程序练习《比较得出一组数的最大值》
《比较得出一组数的最大值》基本的理解从两个数比较得出最大值入手两种思路扩展到三个数比较n个数比较得出最大值拓展,重新用函数的思路走这个过程从两个数比较得出最大值入手扩展到三个数比较扩展到n个数比较总结基本的理解从两个数比较得出最大值入手两种思路第一种思路足够的傻,就是哪个数大max就是哪个的思路非常的好理解,而且也比较好模块化的编程if (a>b){ max=a;}else{ max=b;}第二种思路看起来是有点聪明的,先把第一个数给了max,如果第二个数比第一个数大
2021-07-07 00:50:37
243
原创 1第一章程序练习《计算时间差》
《计算时间差》两种基本思路扩展两种基本思路其实就是简单的两个数相减,但是遇到的一个问题是可能不够减,需要借位的情况1.第一种思路是大单位全部换成小单位,然后做差,最后再换算回来2.第二种思路是就用 小时减小时分钟减分钟,但是不够减的时候考虑用if语句判断然后借位//第一种思路#include<stdio.h>int main(){ int hour1,minute1; int hour2,minute2; //输入两个时间 printf("请输入第一个时间\n");
2021-07-06 23:08:44
338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人