发表评论取消回复
相关阅读
相关 深入理解结构设计与实现:从Leetcode实践出发【2】(题号341、339、364、1381、1188)
高级程序设计语言中通常都已经提供了许多常用的数据结构实现(例如Python中的collection,或者C++中的STL)。LeetCode中广泛存在一种分类标签为'Desig
相关 深入理解结构设计与实现:从Leetcode实践出发【1】(题号225、232、155、716、706)
高级程序设计语言中通常都已经提供了许多常用的数据结构实现(例如Python中的collection,或者C++中的STL)。LeetCode中广泛存在一种分类标签为'Desig
相关 深入理解二叉树与递归:从LeetCode实践出发【2】(题号235、236、1026、1123、1650)
递归是强大的问题求解工具,是程序设计中的一种重要思想和机制。递归有助于写出清晰易懂的代码,能有效提高程序的整体风格。此外,很多算法的实现都有赖于递归函数,例如DFS、回溯、动态
相关 深入理解优先队列与堆:从Leetcode实践出发【2】(题号23、215、857、295)
堆是一种非常有用的数据结构类型,它可以用作执行优先级队列的存储结构,也可以用来实现堆排序。Python中对优先级队列和堆,都提供了很好的支持(有兴趣的读者可以参考文献【1】以了
相关 深入理解优先队列与堆:从Leetcode实践出发【1】(题号253、670、146、767)
一般的队列都需要严格遵从FIFO的原则,每次从队列中取出的都应该是最早被加入其中的元素。但在实际应用中,队列中的元素可能需要一定的优先级,每次从队列中取出具有特定优先级的元素。
相关 深入理解并查集:从Leetcode实践出发【2】(题号924、990、684、261)
不相交集(Disjoint Set)又称并查集,是解决等价或划分问题的一种有效的数据结构(树和森林常常被用来描述不相交集)。在前一篇文章中,已经介绍了关于这种特殊数据结构的基本
相关 深入理解归并与排序:从Leetcode实践出发(题号21、147、148)
排序是算法设计中最基本的问题之一。很多语言也都内置了排序函数,实际开发中需要手工编写排序函数的情况并不多见。但如果涉及到链表排序的话,通常内置函数就不能直接使用了。事实上,Le
相关 深入理解拓扑排序:从Leetcode实践出发(题号207、210、269、310)
拓扑排序是图论中的一个话题。与此相关的题目在LeetCode中的占比很低,但除非对拓扑排序算法有所了解,否则如果碰到一时之间还是很难解出的。本文会介绍拓扑排序的基本算法,并用其
相关 深入理解数学计算问题:从LeetCode实践出发【3】(题号166、279)
本文是深入理解数学计算问题的第3篇。这些数学题目的特点是,要么借助常规算法(例如动态规划)可以解决,要么在非常直接的数学算法实现中需要使用一些数据结构方面的基本知识(例如哈希)
相关 深入理解二叉索引树:从LeetCode实践出发(题号307、315、327、493)
Fenwick Tree也叫做树状数组,或者二叉索引树(BIT,Binary Indexed Tree),由新西兰奥克兰大学的Peter Fenwick博士于1994年提出。F
还没有评论,来说两句吧...