LeetCode 解题报告 (207,210)-- 拓扑排序 (Topological Sort)
拓扑排序是有向图中一种较常用的排序方法,本文主要以 LeetCode 上的两道题目 207. Course Schedule 和 210. Course Schedule II 讲述如何拓扑排序的概念与使用方法。
拓扑排序是有向图中一种较常用的排序方法,本文主要以 LeetCode 上的两道题目 207. Course Schedule 和 210. Course Schedule II 讲述如何拓扑排序的概念与使用方法。
排序是非常常见的操作,常见的排序算法的时间复杂度一般为 \(O(n^2)\)(冒泡、选择、插入)或 \(O(nlogn)\)(快排、归并等)。虽然这些算法对于编程人员来说是基础,但是在实际工程中往往会使用语言内置的排序函数,主要是考虑到编程效率和自己编写排序函数时涵盖情况不全的问题。因此本文主要讲述 python 中的内置函数。
本文主要从 LeetCode 两道题出发讲解如何从树的周游结果来重构树。这两道题分别是 105. Construct Binary Tree from Preorder and Inorder Traversal和 106. Construct Binary Tree from Inorder and Postorder Traversal
200. Number of Islands题目描述如下: >Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.
Binary Indexed Trees(中文名为树状数组,下文简称为 BIT)是一种特殊的数据结构,可多用于高效计算数列的前缀和, 区间和。对于长度为 n 的数组,它可以以 \(O(logn)\) 的时间得到任意前缀和 $ {_{i=1}^{j} a [i],1<=j<=N}$,并同时支持在 $ O (log n)$ 时间内支持动态单点值的修改。空间复杂度 \(O(n)\)
由于某些网站对会对爬虫做限制,因此常常需要通过代理将爬虫的实际 IP 隐蔽起来,代理也有分类,如透明代理,高匿代理等。本文主要讲述如何获取代理 IP,并且如何存储和使用。
本文主要记录 Java 面向对象中几个容易混淆的概念。主要包括重写 (override) 与重载 (overload),多态,抽象类与接口。
两个题目均是要求利用给出的整数 [1, n] 构造出所有的二叉搜索树(BST),其中 95. Unique Binary Search Trees II要求返回所有的二叉树的根节点,96. Unique Binary Search Trees则仅要求返回所有二叉树的数目。