- 博客(13)
- 收藏
- 关注
原创 访问者模式:5 分钟读完一种直观实用的理解方法 | Visitor Pattern: An intuitive and practical approach in 5 minutes
假设我们要考虑一个树结构,其中每个节点可由不同的内存布局,或者说有不同的物理实现方式,甚至可能某个逻辑节点时由多个对象构成的——那么显然我们应该将逻辑节点抽象为接口,不妨将其设计为。我们先理解这样一种直观:写代码的时候,为了减少重复,我们主体代码通常希望使用高层接口;我们假设逻辑节点之间的映射是通过字符串实现的,那么至少有两个接口如下。但是,对某些情况下,我们需要对 INode 引用的对象,调用。那么,如何在高层接口的基础上,访问到具体底层对象的方法呢?的权衡取舍,或者说一种优雅的平衡方式。
2024-12-17 23:43:36
321
原创 四步直观理解傅里叶变换 Four steps to understand Fourier Transform intuitively
已经老大不小了,在看到 FFT/DFT 时,心里总还是有点虚。网上关于傅里叶的材料不少,但:1)要么是非常直观地展示频域和时域的关系;2)要么是详尽地做数学推导。对我来说,更希望有一种材料,提纲挈领地把主要概念联系起来。因此,今天做一整理,争取从此再不忘记这些基础知识。
2024-08-08 21:34:45
900
原创 用 overleaf 生成 PDF/A 遇到 Type 3 font 等问题的解决办法
有些国际上的学术会议要求用 PDF/A 格式提交。还有些奇怪的问题,此处不一一列举了。
2024-08-01 15:50:45
462
原创 三分钟直观理解入参为 Function<? super T, ? extends V> :从需求侧概念入手
两句话理解函数接口为什么是 ? super T, ? extends V
2022-08-01 13:48:37
2307
原创 复制 PDF 时去掉换行符
简单说:在Automator中新建“快捷服务”,选择执行shell脚本,写这么一行:pbpaste | tr -d '\n\r' | pbcopy保存。然后在 通用-键盘-快捷键 里找到这个快捷服务,指定一个快捷键就行。比如我是 CMD+R ,那么每次需要摘抄,两个动作就完成(CMD+C、CMD+R)。注意,代码中‘\n\r’可能根据复制来源软件不同而不同,我这里用的福昕PDF阅读器。再啰嗦两句,找回这个账号居然已经是2021年。2014年12月注册的时候,是准备考研,而现在是为了博
2021-09-14 15:00:19
2943
8
原创 JAVA中等待事件时的一点小疑问的笔记
今天练习JAVA,用到Sequencer中的start方法。发现一旦开始后程序线程(?)似乎就进入卡死状态,虽然后续轨道没有音符但也不会退出,在控制台关闭线程才退出。类似联想到生成GUI后,在得到事件信号前没有代码需要执行,我想知道在这两种情况下CPU究竟在干什么?怎么样才能找回CPU呢?马克一下。
2016-07-16 13:50:28
343
原创 KMP算法next数组计算的理解——菜鸟福音
1)本文讨论的KMP主要是严蔚敏的《数据结构》中第四章提到的KMP,即带NEXT[]辅助数组的KMP算法 2)本文主要是讨论KMP算法NEXT[]数组的计算的理解,一些数学上不严谨的地方还请见谅 3)本文主要针对算法及数据结构的新手,希望能帮助大家快速理解KMP
2015-10-21 19:58:05
1275
原创 【菜鸟福音】KMP算法简单理解(从严蔚敏老师的《数据结构》出发)
作为初学者,KMP算法的基本概念倒是不难,如果知道辅助数组NEXT[],那么也许人人都可以手动模拟匹配过程。所以真正的问题是,怎么根据有限的条件和性质,求出NEXT[]?本文主要针对算法初学者,提出一种“向前看”的理解方式,帮助读者快速牢固掌握NEXT[]数组的求法。
2015-10-21 18:18:37
2912
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人