自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 复制带随机指针的链表

在上图中,对于一个节点,它的 next 指针指向链表中的下一个节点。 next 指针是通常有向链表中有的部分且将所有节点 链接 起来。图中有趣的一点,也是这题有趣的一点在于 random 指针,正如名字所示,它可以指向链表中的任一节点也可以为空。 算法 1、从 头 指针开始遍历整个图。 我们将链表看做一张图。下图对应的是上面的有向链表的例子,Head 是图的出发节点。 2、当我们遍历到某个点时,如果我们已经有了当前节点的一个拷贝,我们不需要重复进行拷贝。 3、如果我们还没拷贝过当前节点,我们创造一个新的.

2020-07-15 10:50:07 231

原创 LeetCode 刷题记录:删除链表的倒数第 N 个节点

题目解析 采取双重遍历肯定是可以解决问题的,但题目要求我们一次遍历解决问题,那我们的思路得发散一下。 我们可以设想假设设定了双指针 p 和 q 的话,当 q 指向末尾的 NULL,p 与 q 之间相隔的元素个数为 n 时,那么删除掉 p 的下一个指针就完成了要求。 设置虚拟节点 dummyHead 指向 head 设定双指针 p 和 q,初始都指向虚拟节点 dummyHead 移动 q,直到 p 与 q 之间相隔的元素个数为 n 同时移动 p 与 q,直到 q 指向的为 NULL 将 p 的下一个节点指向下

2020-07-10 10:22:57 154

原创 LeetCode刷题记录--前K个高频元素

前K个高频元素解法一:粗暴排序法复杂度分析解法二:最小堆 ps:要求算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。 解法一:粗暴排序法 最简单粗暴的思路就是 使用排序算法对元素按照频率由高到低进行排序,然后再取前 kk 个元素。 以下十种排序算法,任你挑选! 可以发现,使用常规的诸如 冒泡、选择、甚至快速排序都是不满足题目要求,它们的时间复杂度都是大于或者等于 O(n log⁡n)O(nlog⁡n),而题目要求算法的时间复杂度必须优于 O(n log n)O(nlogn)。 复杂度

2020-07-07 10:53:00 377

原创 Spring Bean lookup-method属性

引言 假设一个单例模式的bean A需要引用另外一个非单例模式的bean B,为了在我们每次引用的时候都能拿到最新的bean B,我们可以让bean A通过实现ApplicationContextWare来感知applicationContext(即可以获得容器上下文),从而能在运行时通过ApplicationContext.getBean(String beanName)的方法来获取最新的bea...

2020-02-02 11:44:16 431

原创 Spring中Bean的Scope

1. singleton作用域(scope 默认值) 当一个bean的作用域设置为singleton, 那么Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。换言之,当把 一个bean定义设置为singleton作用域时,Spring IOC容器只会创建该bean定义的唯一实例。这个单一实例会被存储到单...

2020-01-27 21:36:07 196

原创 装饰者模式

前言 类应该对扩展开放,对修改关闭。在不修改现有代码的情况下,就可搭配新的行为。 概括 1、装饰者和被装饰者有相同的父类 2、你可以用一个或者多个装饰者包装一个对象 3、既然装饰者和被装饰者对象有相同的超类型,所以在任何需要原始对象(被包装)的场合,都可以用装饰过的对象代替它。 4、装饰者可以在所委托被装饰者的行为之前、之后加上自己的行为,以达到特定目的。 5、对象可以再任何时候被装饰,所以可以在...

2019-12-22 16:45:27 131

原创 策略模式

策略模式的概念: 定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的替换独立于使用算法的客户。 优点: 使用组合建立系统具有很大的弹性,不仅可以将算法族封装成类,更可以在运行时动态地改变行为,只要组合的对象符合正确的接口标准即可。 示例 1、父类抽象类 public abstract class Duck{ FlyBehavior flyBehavior;//将两个类结合...

2019-12-22 14:16:18 107

空空如也

空空如也

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

TA关注的人

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