自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 降低时间复杂度的几种方法【持续更新】

降低时间复杂度的几种方法【持续更新】  LeetCode的许多题目都对时间复杂度有相应的要求,大家在刷题时遇到一道题可能有自己的解决方法,也确实可行,然而时间复杂度达不到要求也无法通过。这里给大家持续总结LeetCode中遇到的那些降低时间复杂度的方法。

2017-06-12 17:33:52 20202

原创 多因子排序

当需要对多因子进行排序时,可以构造下面这样的包装类,对List<YourObject>进行排序,假设排序因子都是Double类型的。如有其他需要,也可使用泛型。/** * 用于多因子优先级排序 * 要求List<YourObjectWrapper>的所有元素都是按照同样因子优先级顺序构造的scores */class YourObjectWrapper im...

2019-04-26 17:32:58 1630

原创 静态代理、动态代理、CGLIB

代理目的:扩展被代理对象的功能。参考:https://blog.csdn.net/briblue/article/details/73928350https://www.jianshu.com/p/6f6bb2f0ece9例如动态代理中的拦截器,拦截某个方法后,在该方法前后增加额外方法,扩展了其功能。静态代理动态代理CGLIB参考:https:/...

2018-08-14 10:49:15 148

原创 学习思维

非常感谢实习期间的一位师兄给予的耐心教导,从他那里继承来了学习思维的连环三问:1. 为什么要用这个东西(一种设计模式/一个类/一种框架/一种算法/一种数据结构/一种规范)?2. 去掉这个东西会有什么影响?3. 如果不用这个,我们可以拿什么来代替?举个例子:打印日志经常会同时返回errCode和errMessage,为什么两个都要呢?去掉其中某一个会有影响吗?要是不用...

2018-08-13 22:31:14 515

原创 自定义注解+实现类+AOP

以自定义注解实现缓存为例:在方法上添加注解,即可将方法名和入参(为key)、返回值(为value),存入缓存cache。1. 自定义注解定义注解中需要获取的自定义参数,以提供给实现类调用。2. 缓存实现类实现缓存相关的增删改查等。3. AOP代理实现AOP动态代理、拦截器,用Manager集中管理,并注册bean。...

2018-08-13 14:47:43 3357

原创 监听器模式

定义事件源生成事件并将其发送至一个或多个监听器; 监听器简单地等待,直到它收到一个事件。一旦事件被接受,监听器将处理这些事件,然后返回。实现事件对象接口(监听器注册方法,事件相关方法) 事件源类implements事件对象接口(事件源状态,事件触发方法(1.改变事件源状态;2.调用监听器的事件触发处理方法),监听器注册方法) 事件监听器接口(事件触发处理方法(参数:事件对象))参...

2018-08-09 11:12:56 177

原创 回调

定义A类调用B类去解决问题,B类解决问题得到结果以后,调用A类中的方法(回调函数)进行结果的展示/后续处理;为了B类可以调用A类中的方法(回调函数),并且知道就是要调用该方法,就需要一个interface,A类继承这个interface,实现interface的方法(即回调函数),并在调用B类方法时传入这个interface,这样B类的方法就知道并可以要通过这个interface来调用A类...

2018-08-09 10:49:58 125

原创 Git相关

IDEA内部Terminal使用Git配置分支操作参考:https://blog.csdn.net/arkblue/article/details/9568249版本重置revert:回到上次git commit或git pull时的状态,丢弃这段时间的开发; git reset commitID 转到指定commit版本,再 git push –f,会删除指定commit版...

2018-08-09 10:36:22 102

原创 缓存

1. 主动写缓存与被动写缓存相对来说,被动写缓存对缓存一致性的保障更好。一般缓存一致性保障方法:补偿机制 定期全量或增量build 失效机制2. 自定义注解实现缓存由三部分组成,可参考 https://www.jianshu.com/p/9c2771b754881. 自定义注解public @interface SetCache {}public @inter...

2018-08-07 20:59:16 493

原创 Java 数据结构stack、queue的常用类

DequeArrayDeque

2018-01-24 11:34:19 311

原创 双指针 子字符串问题

双指针使用模板

2017-12-27 15:34:27 427

原创 DP 人生第一道Hard,不出意外没做出来(详细注释,安慰一下自己)

LeetCode 691. Stickers to Spell WordDP四大要素,需要仔细分析

2017-12-26 16:08:37 275

原创 回文

回文判断

2017-12-22 15:59:13 348

原创 有向图是否有环 BFS 和 DFS

LeetCode 207. Course Schedule

2017-08-30 11:51:33 2001

原创 DP O(n)遍历 + Binary Search = O(nlogn)

LeetCode 300. Longest Increasing Subsequence

2017-08-28 16:27:32 281

原创 广度优先遍历 之 LeetCode 542. 01 Matrix

广度优先遍历是层序遍历的推广。层序遍历需要使用普通队列,因此,对于广度优先遍历,使用普通队列也是一个不错的选择。

2017-07-27 16:35:31 301

原创 深度优先遍历

深度优先遍历是对先序遍历的推广。从某个元素v开始处理,然后递归遍历所有与v相邻的元素。

2017-07-27 11:25:47 566

原创 Java 普通队列 和 优先级队列 的使用

不同的问题使用不同的数据结构,往往可达奇效。

2017-07-17 17:51:30 390

原创 递归转非递归的栈方法

递归转非递归

2017-07-14 11:24:51 2716

转载 内部排序算法

内部排序算法

2017-07-06 09:42:45 185

原创 针对矩阵的一类动态规划处理

LeetCode动态规划题目中遇到两道矩阵题,一个是寻找子矩阵,一个是计算某个子矩阵的和。这里介绍一下他们的处理方法,记录思考.

2017-07-05 16:13:57 231

原创 延展问题=基本问题+特殊情况(延展问题=基本问题 分情况讨论)

  对于一些在原问题基础上增加了一些条件,进而延展一个新问题的题目,往往可以视为基本问题加上特殊情况的处理。   先回顾一下之前有一篇博文提到的抢劫问题,是对一条线上的房子进行抢劫。       LeetCode 198题 You are a professional robber planning to rob houses along a street. Each house h...

2017-06-29 10:18:02 749

原创 01背包问题的扩展——二维费用 LeetCode 474

01背包问题二维费用变量。状态转移公式有所变化,如下:   f[i][v][u]=max{f[i-1][v][u],f[i-1][v-c[i]][u-d[i]]+w[i]}   因此,在套用01背包问题优化空间复杂度后的代码时,需要补充增加一维的工作。

2017-06-26 17:58:59 896

原创 实际问题的算法抽象——动态规划中的01背包问题

  LeetCode的许多题目都不会明确告诉你用哪一类算法进行求解,甚至可能都无须用复杂算法。然而能明确用哪一类算法解决问题,将对问题的解决提供事半功倍的效果。当然有些题目即使告诉你用哪一类算法,然而如何将该问题抽象成一个数学算法,也是需要锻炼的。这里结合LeetCode 494和416给大家做一点分析。数学抽象——LeetCode 494 You are given a list...

2017-06-23 17:51:26 588

原创 动态规划中 用O(n)时间遍历数组

在针对一些需要遍历一个数组,同时使用广义动态规划(即至少有一个狭义动态规划条件不满足)的方法中,如何不使用递归,并且只用O(n)时间遍历数组呢?

2017-06-13 17:32:13 490

原创 从 LeetCode 279 实践动态规划

Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n.For example, given n = 12, return 3 because 12 = 4 + 4 + 4; given n = 13, r

2017-06-08 10:42:52 473 1

空空如也

空空如也

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

TA关注的人

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