摘要:
什么是回溯? 回溯是一种基本的搜索算法,通过在搜索过程中寻找问题的解,当发现已不满足求解条件时,就"回溯"返回,尝试别的路经。在探索过程中,当探索到某一步时,发现原先搜索并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 搜索方式 阅读全文
摘要:
此题可以使用两种思路来解决: DFS Union-Find 以下是使用上一篇的数据结构Union-Find来处理的代码: /** * LeetCode_146 * https://leetcode.com/problems/redundant-connection/description/ * ht 阅读全文
摘要:
private var parents_: IntArray? = null //记录触点的个数 private var ranks_: IntArray? = null private var count = 0 init { count = N //初始化分量数组 parents_ = IntA 阅读全文
摘要:
什么是并查集? 一个实现了合并与查询集合的数据结构。可以解决动态连通性一类的问题。 那什么是动态连通性问题? 给出一系列的对象时,让其支持下列操作: 判断两个对象是否相连 使两个对象相连 这里以整数表示对象,有0-9共十个整数,当给出一个整数对(a,b)时表示将整数a和b相连(如果a、b不相连),如 阅读全文
摘要:
/** * 738. Monotone Increasing Digits * https://leetcode.com/problems/monotone-increasing-digits/description/ * * Given a non-negative integer N, find 阅读全文
摘要:
什么是对数? 求数字100000中0的个数,就称作求100000的对数,也称作取对数、计算对数。 100000的对数是5;100的对数是2。 1000的对数是3的表述,更为正确的写法是“以10为底,1000的对数为3”。这里所说的“底”,相当于“什么的3次方为1000?”中的“什么”。底也称为“基数 阅读全文
摘要:
/** * 42. Trapping Rain Water * https://leetcode.com/problems/trapping-rain-water/description/ * */ class Solution { fun trap(height: IntArray): Int { 阅读全文
摘要:
什么是序列化 在计算机科学的数据处理中,是指将数据结据或对象转换成可取用的格式(如存成文件,字节),以让后续在相同或另一台计算机中,能恢复原先状态的过程。 为什么我们需要序列化 存储/传输 IPC/RPC IPC,Inter-Process Communication,进程间通信 RPC,Remot 阅读全文
摘要:
什么是回溯算法?(学习) (视频学习) 通过wikipedia可以了解到,回溯算法就是一步步(通常通过递归)构建可能的解,并且回溯不可能的”解“来求所有或者部分解决方案的通用方法。其中“回溯”的具体意思就是将不可能的解或者部分解的候选尽早的舍弃掉(剪枝),“解”是需要满足一定的条件(constrai 阅读全文
摘要:
/** * 63. Unique Paths II * https://leetcode.com/problems/unique-paths-ii/description/ * https://www.youtube.com/watch?v=8v-dX6ato_Y * */ class Soluti 阅读全文