- 博客(30)
- 收藏
- 关注

原创 降低时间复杂度的几种方法【持续更新】
降低时间复杂度的几种方法【持续更新】 LeetCode的许多题目都对时间复杂度有相应的要求,大家在刷题时遇到一道题可能有自己的解决方法,也确实可行,然而时间复杂度达不到要求也无法通过。这里给大家持续总结LeetCode中遇到的那些降低时间复杂度的方法。
2017-06-12 17:33:52
20976
1
原创 实战绝佳的LeetCode刷题方法
学生时代找工作前就刷过算法题,不过现在回看当初,单纯根据LeetCode上的分类:数组、字符串、动态规划这样的分类去刷,确实略显盲目。如何才能更高效、更聚焦地刷出最大价值呢?这次换工作,我前后刷了不到200题,面试多家公司,依旧遇到近半未做过的题,但基本都AC,特将心得记录在此,与君共勉。。根据你想去的公司,去刷他们最高频的题目吧。亲测50%有效。刷题核心主要3点:数据结构算法模板代码,对应到10余种常见题目类型,每种类型刷10题左右,深度理解一些经典题解,基本这一类的题面试中都不会再感棘手。
2025-01-04 10:43:22
914
原创 端到端性能&体验&稳定性优化常见方案
页面、组件计算过程中依赖非常多的填充资源,例如组织信息、各种应用信息、用户信息、可见性信息等等,但由于不同类型工作台、不同schema的工作台上的组件内容不一样,所依赖的填充资源也不一样,这些不一样的地方往往要到某个组件的计算逻辑中才知道是否需要。一处加载,处处可用。对于主页或门户类的加载,常常用到的一个设计模式则是责任链模式。基于过去几年负责过的亿级用户千万级日活的用户系统、亿级用户业务推送系统,加上跟客户端、前端、服务端、中间件团队的一些技术合作,这里总结一下常见的端到端性能&体验&稳定性的优化方案。
2025-01-01 16:11:45
653
原创 简易耗时任务框架
自GPT大火之后,各种大模型相关的技术层出不穷,最火的莫过于文生图模型 Stable Diffusion、文生视频模型 Sora 等等。而基于此的AI应用更是层出不穷,例如之前让人眼前一亮的妙鸭相机,一股要颠覆传统美颜和PS的势头。对于这类基于大模型的图片、视频类的产品应用,有一个共同的工程特点:功能耗时长。因为大模型处理图片和视频通常都很难做到秒级返回,等个10s甚至分钟、小时以上目前都是符合用户预期的。
2024-04-03 14:01:15
711
原创 多因子排序
当需要对多因子进行排序时,可以构造下面这样的包装类,对List<YourObject>进行排序,假设排序因子都是Double类型的。如有其他需要,也可使用泛型。/** * 用于多因子优先级排序 * 要求List<YourObjectWrapper>的所有元素都是按照同样因子优先级顺序构造的scores */class YourObjectWrapper im...
2019-04-26 17:32:58
1730
原创 静态代理、动态代理、CGLIB
代理目的:扩展被代理对象的功能。参考:https://blog.youkuaiyun.com/briblue/article/details/73928350https://www.jianshu.com/p/6f6bb2f0ece9例如动态代理中的拦截器,拦截某个方法后,在该方法前后增加额外方法,扩展了其功能。静态代理动态代理CGLIB参考:https:/...
2018-08-14 10:49:15
183
原创 学习思维
非常感谢实习期间的一位师兄给予的耐心教导,从他那里继承来了学习思维的连环三问:1. 为什么要用这个东西(一种设计模式/一个类/一种框架/一种算法/一种数据结构/一种规范)?2. 去掉这个东西会有什么影响?3. 如果不用这个,我们可以拿什么来代替?举个例子:打印日志经常会同时返回errCode和errMessage,为什么两个都要呢?去掉其中某一个会有影响吗?要是不用...
2018-08-13 22:31:14
619
原创 自定义注解+实现类+AOP
以自定义注解实现缓存为例:在方法上添加注解,即可将方法名和入参(为key)、返回值(为value),存入缓存cache。1. 自定义注解定义注解中需要获取的自定义参数,以提供给实现类调用。2. 缓存实现类实现缓存相关的增删改查等。3. AOP代理实现AOP动态代理、拦截器,用Manager集中管理,并注册bean。...
2018-08-13 14:47:43
3441
原创 监听器模式
定义事件源生成事件并将其发送至一个或多个监听器; 监听器简单地等待,直到它收到一个事件。一旦事件被接受,监听器将处理这些事件,然后返回。实现事件对象接口(监听器注册方法,事件相关方法) 事件源类implements事件对象接口(事件源状态,事件触发方法(1.改变事件源状态;2.调用监听器的事件触发处理方法),监听器注册方法) 事件监听器接口(事件触发处理方法(参数:事件对象))参...
2018-08-09 11:12:56
216
原创 回调
定义A类调用B类去解决问题,B类解决问题得到结果以后,调用A类中的方法(回调函数)进行结果的展示/后续处理;为了B类可以调用A类中的方法(回调函数),并且知道就是要调用该方法,就需要一个interface,A类继承这个interface,实现interface的方法(即回调函数),并在调用B类方法时传入这个interface,这样B类的方法就知道并可以要通过这个interface来调用A类...
2018-08-09 10:49:58
169
原创 Git相关
IDEA内部Terminal使用Git配置分支操作参考:https://blog.youkuaiyun.com/arkblue/article/details/9568249版本重置revert:回到上次git commit或git pull时的状态,丢弃这段时间的开发; git reset commitID 转到指定commit版本,再 git push –f,会删除指定commit版...
2018-08-09 10:36:22
134
原创 缓存
1. 主动写缓存与被动写缓存相对来说,被动写缓存对缓存一致性的保障更好。一般缓存一致性保障方法:补偿机制 定期全量或增量build 失效机制2. 自定义注解实现缓存由三部分组成,可参考 https://www.jianshu.com/p/9c2771b754881. 自定义注解public @interface SetCache {}public @inter...
2018-08-07 20:59:16
681
原创 DP 人生第一道Hard,不出意外没做出来(详细注释,安慰一下自己)
LeetCode 691. Stickers to Spell WordDP四大要素,需要仔细分析
2017-12-26 16:08:37
351
原创 DP O(n)遍历 + Binary Search = O(nlogn)
LeetCode 300. Longest Increasing Subsequence
2017-08-28 16:27:32
319
原创 广度优先遍历 之 LeetCode 542. 01 Matrix
广度优先遍历是层序遍历的推广。层序遍历需要使用普通队列,因此,对于广度优先遍历,使用普通队列也是一个不错的选择。
2017-07-27 16:35:31
337
原创 针对矩阵的一类动态规划处理
LeetCode动态规划题目中遇到两道矩阵题,一个是寻找子矩阵,一个是计算某个子矩阵的和。这里介绍一下他们的处理方法,记录思考.
2017-07-05 16:13:57
262
原创 延展问题=基本问题+特殊情况(延展问题=基本问题 分情况讨论)
对于一些在原问题基础上增加了一些条件,进而延展一个新问题的题目,往往可以视为基本问题加上特殊情况的处理。 先回顾一下之前有一篇博文提到的抢劫问题,是对一条线上的房子进行抢劫。 LeetCode 198题 You are a professional robber planning to rob houses along a street. Each house h...
2017-06-29 10:18:02
911
原创 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
949
原创 实际问题的算法抽象——动态规划中的01背包问题
LeetCode的许多题目都不会明确告诉你用哪一类算法进行求解,甚至可能都无须用复杂算法。然而能明确用哪一类算法解决问题,将对问题的解决提供事半功倍的效果。当然有些题目即使告诉你用哪一类算法,然而如何将该问题抽象成一个数学算法,也是需要锻炼的。这里结合LeetCode 494和416给大家做一点分析。数学抽象——LeetCode 494 You are given a list...
2017-06-23 17:51:26
645
原创 动态规划中 用O(n)时间遍历数组
在针对一些需要遍历一个数组,同时使用广义动态规划(即至少有一个狭义动态规划条件不满足)的方法中,如何不使用递归,并且只用O(n)时间遍历数组呢?
2017-06-13 17:32:13
541
原创 从 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
509
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人