自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 模拟MVC结构使用了观察者模式和动态代理的小小案例

采用的被观察者(后面称为通知者)命名为Examine类:页面发User数据到controller,controlloer调用service类,在注册函数register类中经过审核后就调用examine的执行函数notify进行通知广播所有被管理的user(也就是观察者)进行状态的更改(user继承的接口有updata这个类来进行state属性的更改)采用的动态代理进行调用service函数的之前和之后打印一句话(也就是日志),2.service类。5含有更新函数的实体类。3通知者examin。

2023-12-06 15:15:59 74 1

原创 代码随想录算法训练营第22天| 235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作、 450.删除二叉搜索树中的节点

2.3左右都不空,那就把root.left连接到root.right.left上,如果这个位置已经有人了,那就往左下角层层找到空的,(二叉搜索树的特性:一个节点的左节点一定会比他的所有右节点小)思路:这道题与二叉树的最近公共祖先不同的点在于:二叉搜索树自带分叉属性,当root.val处于pq(假设p

2023-11-30 21:04:01 47

原创 代码随想录算法训练营第21天|530.二叉搜索树的最小绝对差 、501.二叉搜索树中的众数 、236. 二叉树的最近公共祖先

我们在函数外定义一个节点pre,当递归位于叶子节点时,pre(当前节点的前一个节点)就不参与判断,然后在当前节点准备回溯(return)前,pre = current(当前节点);思路:首先,不要被题目中的“树中任意两节点的差的绝对值”的任意两字迷惑,当我们利用中序遍历二叉搜索树时,得到的结果是排好序的,直接相邻的俩个值的差,从这些差中得到最小值就行。思路:二擦搜索树如果用中序遍历的话,结果是递增的,如果能额外创建一个容器(map)把结果装入,然后遍历是很简单的。思路:这就一种不断携带值的回溯。

2023-11-28 16:05:30 22

原创 代码随想录算法训练营20|654.最大二叉树 、 617.合并二叉树、700.二叉搜索树中的搜索 、98.验证二叉搜索树

构造树一般采用的是前序遍历(中左右),因为先构造中间节点,然后递归构造左子树和右子树;判断参数和返回值:参数传入的是存放元素的数组,返回该数组构造的二叉树的头结点,返回类型是指向节点的指针。思路:这个用递归还是很简单的,用前中后遍历都可以,分为tree A和tree B,如果ab节点相同。思路:有个大坑:二叉搜索树是要他的每一个节点的左都小于他,右都大于他,所以这个不是二叉树。单层递归的逻辑:这个有点像排序了,主要有maxIndex和maxValue;思路:简单,自己都能做出来,就判断就行。

2023-11-27 22:54:50 25

原创 代码随想录算法训练营13day| 239. 滑动窗口最大值、347.前 K 个高频元素

思路:我愿称其为“看潜力法”,在数组nums的值进入滑动窗口时,直接看窗口里前面的值有没有自己大,没自己大就全部创死(pop掉),比自己大就排在他后面,这就像公司里进来一个有潜力的新人,在选新leader的时候就把排在自己前面的比自己潜力小的老人挤掉 :(你卷你@#原理:因为滑动窗口最大值只选一个,而在每一个值进入时进行竞争,能保证窗口里只有一个值就是最大值,然后选择他,而队列很适合干这个。第一眼:用容器装入每个值和其个数,然后对其排序。第一眼: 暴力遍历,没办法,太菜了。这道题用小堆更好,因为。

2023-11-21 20:54:23 26 1

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

第一印象:太经典了哦,一个数组充当hash映射集合,存储所有出现过的报纸字符(考虑用哈希的条件是要判断一个数是否在另一个集合里),直接斩于马下。核心:一涉及到去重,用hash将很难处理,因为我们在把数据映射到集合中时,添加去重逻辑的(去重)时候,会有,一般都想先排序后处理。第一印象:数组,和Map<int, set>,但是第二个方法我是把四个数组中的两个值都收集起来,这样在查找的时候根本不行!第一印象:怎么说呢,在做这题的时候很疲惫,脑子完全浆糊,跟着题解写都能有十个Bug:(),这样就像两数之和了。

2023-11-15 17:08:58 14

原创 代码随想录算法训练营第五天|242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

需要基础:hash表(也可以叫做散列表),通俗理解呢就是创建一片空间,根据一个分类规律(一般有hash函数),将我们需要处理的资源映射到这片空间上去,这片空间就叫hash表。的字母异位词(什么是字母异位词不重要,他是快速判断一个值(字符串t的每个char)是否出现 在集合(字符串s的每个char)里,这就可以用hash方法))映射到数组a中(是数组a的地址),其Value是他出现的次数(也是数组a的值)。要点:也可以用hash方法,核心是判断他每次循环产生的sum是否在之前出现过(统计所有过去出现的集合)

2023-11-13 15:04:17 17

原创 代码随想录算法训练营第三天| 203.移除链表元素、707.设计链表、 206.反转链表

数据结构中一个重要的结构就是链表,他与数组不同,优点是插入、删除快;缺点嘛就是检索慢(但可以依靠索引改善),一般用链表都是在头尾进行操作,放一些像日志,数字日期之类的再好不过了,一些高级结构也会用到链表例如队列、栈和 哈希表;我们创建一个对象a : User a = new User();然后a 的地址在:0x7ffc22dcc868(瞎写的),那么我们如果在创建一个User对象B,让User B = a;其中的next就是对另一个链表结构的引用,这样就像串糖葫芦一下,把每一个有地址的链表节点串起来啦。

2023-11-11 22:58:51 19 1

原创 代码随想录算法训练营第二天| 977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵II

不知道你们初学c语言时有没有接触过杨辉三角这道题(当时确实菜,消耗了我不少脑力),这个也是类似的模拟题,最重要的要考虑到边界问题,什么是边界呢,就是你的当你的指针走到这一轮循环(注意不是循环的一次,是总的)的末尾,要判断是退出,还是把这最后一个也执行了,图中的红色区域就是一轮循环,当指针走到【0,2】(数组从0开始算)时,考虑边界,决定不执行,这种就叫边界考虑,常见有左闭右开(判断是退出)和左闭右闭(判断是最后一个也执行了),图中是左闭右开。2.好,停住,这时候统计肚子里的子数组的大小(有几个元素,记住。

2023-11-10 15:33:32 235

原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

二:对于没有target在数组中的情况(总之就是left和right会把target本应该在的位置夹住):1.left会先和right地址相差一位,2.接着mid会和他们地址相等,3.接着right会往左一个而跳出循环,所以最后mid和left的位置相同,在大于target的最小一个数的地址,要点:要有边界值的概念,如果left=0,right=长度,这说明包括两个指针在内的值都有可能是target。数组:对于java的数组来说,内存管理是交给虚拟机管理的,地址是虚拟地址。

2023-11-08 19:47:29 237 1

原创 操作系统Round-Robin Scheduling时间片轮转调度算法

是进程和网络调度程序常用的算法之一。[1] 这一方法将相等长度的按照不变的顺序依次分配给每个进程[2],且在处理所有进程时不考虑任何优先级。这一算法简单并易于实现,并且不会产生。时间片轮转调度可以应用于其他调度问题,例如计算机网络中的数据包调度。它是一个操作系统概念。

2023-11-02 19:29:19 453

空空如也

空空如也

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

TA关注的人

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