自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 代码随想录第20天|二叉搜索树续

自己想的:首先是参数:使用它给出的函数即可终止条件,遇见null节点返回如果当前节点值小于左边界,则其左侧子树全需要删除(因为更小),然后我们可以通过返回节点的方式,进行一种删除的操作(即给某节点赋值左右节点的时候使用递归函数,这样我们可以通过return的条件改变节点的左右孩子),之后再返回递归右子树的结果(因为右子树的节点不一定满足在范围内)如果节点值大于右边界,则右子树删除,操作类似.迭代法。

2024-05-30 20:13:26 77

原创 代码随想录第19天|二叉搜索树题型

一种是对于所有二叉树的通用解法从根节点开始往下搜索,搜索到的第一个节点的值在p,q的值之间,那么它一定是最深的公共祖先。

2024-05-29 18:47:35 165

原创 代码随想录第18天|二叉树续

使用中序遍历获得一个数组,然后比较相邻的最小差值即可递归(记录上一个的指针)

2024-05-28 16:55:33 287

原创 代码随想录第17天|最大二叉树&合并二叉树&二叉搜索树

这题和昨天写过的:使用中序后序序列构建二叉树 类似只需要使用前序遍历构建,通过最大值将数组划分为左数组和右数组,再以该最大值构造节点,以左数组和右数组递归地构造子树。

2024-05-27 16:01:39 314

原创 代码随想录第16天|二叉树续

使用迭代法(层序遍历)使用递归法:前序遍历,优先向左遍历,如果某个节点为叶子节点且为当前深度最大的时候就记录值。

2024-05-26 14:44:52 172

原创 代码随想录第15天|平衡二叉树&二叉树的所有路径&左叶子之和

递归法:这题虽说是深度,但是还是要求左右子树的高度,因为如果使用前序遍历,在没有遍历到空节点的时候是不知道该节点的深度的,没有遍历到需要return返回的条件就进行判断的话,是无法知道左子树或右子树的深度的,所以需要用。

2024-05-24 14:57:52 324 1

原创 代码随想录第14天|二叉树操作2

如果使用其实是求的根节点的高度,但是根节点的高度就是二叉树的最大深度。如果使用前序遍历,那么求的就是深度,因为是从根节点开始统计深度的,而不是从叶节点开始。

2024-05-24 12:46:26 261 1

原创 Go的学习日记

具体来说,执行go mod init helloworld命令将创建一个名为helloworld的新模块,并生成一个go.mod文件,该文件记录了当前项目的模块路径(通常是您的代码托管服务的地址),以及任何依赖的模块及其版本。一旦执行了go mod init,您就可以使用go mod命令来管理您的项目的依赖关系,例如使用go mod tidy来清理不再使用的依赖项,或者使用go mod vendor来将依赖项复制到您的项目中的vendor目录中。如果右操作数的对应位是 0,则保留左操作数的对应位。

2024-05-23 21:58:08 635 1

原创 代码随想录第13天|二叉树操作

基本算法,每次把一层的节点放入栈中递归的三要素确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。确定终止条件: 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。确定单层递归的逻辑: 确定每一层递归需要处理的信息。

2024-05-22 19:32:38 437 1

原创 代码随想录第十二天|二叉树的遍历

中左右。

2024-05-21 15:37:29 510 1

原创 代码随想录第十一天|滑动窗口&堆

用双向队列维护一个单调队列(对头为最大值或最小值)在本题中,是维护一个单调递减队列(对头最大),因为题目要求最大值。标准代码创建了一个类专门用来表示单调队列。

2024-05-20 16:02:04 390 1

原创 代码随想录第十天|栈&队列 2

【代码】代码随想录第十天|栈&队列 2。

2024-05-19 14:48:20 330

原创 代码随想录第九天|栈&队列 1

定义两个栈s1(输入栈)和s2(输出栈)获取队首的操作:如果输出栈空的话,把输入栈依次弹出,再放入s2中,这个时候s2的栈顶就是原栈的最后一个元素,即队列的第一个元素。如果输出栈不为空,直接从输出栈获取栈顶即可。

2024-05-19 12:32:52 386 1

原创 代码随想录第八天|字符串-KMP

haystack称为文本串,needle称为模式串构建next数组的操作对于例子通过next数组(前缀表)我们可以发现,当模式串里的f和文本串的b不相同时,应该将模式串中的指针j回退到索引为2,即j=next[j-1]可以看到前缀表中表示以当前字符为结尾的串的相同前缀和后缀长度,如next[1],表示aa这个串的最长相同前缀和后缀的长度为1:就是a.那么当f不匹配。

2024-05-17 15:10:43 449

原创 代码随想录第七天|字符串

简单题。

2024-05-15 19:07:13 615

原创 代码随想录第六天|哈希-续

自写:把前两个数组的组合出的和,用map1记录对应的出现次数,同理,后两个数组的组合出的和也记录出现次数。首先遍历map1,则和为0的情况总数为:map1[key]*map2[-key].

2024-05-14 17:19:43 422 2

原创 代码随想录第五天|哈希表

自写:分别为两个串创建两个map,然后判断两个map内的key和value是否相同即可。有点耗空间创建一个数组当作map即可,然后让第一个串先用map记录,对应的字符数量+1,在遍历第二个串的时候再让对应的字符数量-1,如果最后的数组里每个字母对应的元素数不为0,则说明这两个串不是异位词。

2024-05-13 15:15:52 492 1

原创 代码随想录第四天|链表操作续

自己想的方法是使用三个指针进行位置修改操作,原理如图所示,我的操作顺序是按照黄色的1,2,3来进行的。

2024-05-12 23:33:55 481 1

原创 代码随想录第三天|链表操作

在链表操作中,有两种方式进行修改。

2024-05-11 21:35:52 619 1

原创 代码随想录算法训练营第二天|数组双指针&滑动窗口&模拟

可用数组中绝对值的最小值和其左边一个索引,为两个指针的起始点进行遍历(平方值从小到大)也可以从数组的左右端点进行遍历,这两个数的平方值中必有一个为最大值,这样依次遍历到的是平方值递减的数组,所以我们对于创建的数组res从后往前存入,这样就实现了res的递增。

2024-05-10 21:45:26 553

原创 代码随想录算法训练营第一天

关于是在哪个if条件里设立边界的问题,只需要关注当target=num[mid]的时候,l或者r更新后是在target的左侧还是右侧,根据这点就知道边界赋值的句子应该写在哪。对于,当相等时,r = mid - 1,r在target左边,所以是左边界。return rb;lb = r;// 因为rb和lb都是不包含target的边界,所以它们之间的间隔必定大于1,否则无法包含target。

2024-05-08 13:52:25 750

原创 SSM笔记

SSM学习笔记

2021-12-06 22:10:35 1052 1

原创 Java基础

Java基础概念编译器IDEA的使用Java项目结构常用快捷键Java基础知识方法重载数组静态初始化(指定内容)动态初始化(指定长度)二维数组动态初始化静态初始化Comparable接口:数组自然排序Comparator接口:比较器排序Java的内存划分类对象的内存图编译器IDEA的使用Java项目结构常用快捷键Java基础知识方法是public static int xx静态方法的话,只能调用静态变量在一个类中使用Psvm出来的就是主类名,也是文件名.class一个文件里只能有一个类存在

2021-12-06 20:30:39 73

原创 最大的子矩阵

最大子矩阵Problem Description给你一个m×n的整数矩阵,在上面找一个x×y的子矩阵,使子矩阵中所有元素的和最大。Input输入数据的第一行为一个正整数T,表示有T组测试数据。每一组测试数据的第一行为四个正整数m,n,x,y(0<m,n<1000 AND 0<x<=m AND 0<y<=n),表示给定的矩形有m行n列。接下来这个矩阵,有m行,每行有n个不大于1000的正整数。Output对于每组数据,输出一个整数,表示子矩阵的最大和。Samp

2020-07-03 21:14:12 209

原创 打印沙漏

纯新人如有做的不好还请见谅#include<stdio.h>using namespace std;int main(){int a;char c;cin>>a;cin>>c;int i;int t;if(a<=1)cout<<c; else{for(i=1;;i++){ t=i*i; if...

2020-03-17 16:06:36 74

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除