![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Algorithm
Whisper321
这个作者很懒,什么都没留下…
展开
-
关于递归
递归是一种解决问题的方法,将问题分解为更小的子问题,直到得到一个可以被轻易解决的简单的问题。递归使得程序员可以编写优雅的解决方案。原创 2019-05-08 16:13:07 · 171 阅读 · 0 评论 -
几种重要排序算法的 Python 实现
冒泡排序最基本的排序,使用交换相邻项的操作每次搜索剩余列表中的最大值,并将其“冒”出。def bubble(alist): first = 0 last = len(alist) - 1 while first < last: for i in range(first, last): if alist[i] > alist[i+1]: alist[i], a...原创 2019-05-31 10:00:28 · 181 阅读 · 0 评论 -
基本的 BFS 和 DFS,以及基于 BFS 的无权图最短路径算法
BFS 基于队列实现,DFS 基于栈实现,是最基本的图算法,但是它们的扩展有很多实际用处。下面给出这两种图搜索的实现:def bfs(graph, v): queue = [v] visited = set() visited.add(v) res = [] while queue != []: temp = queue.pop(0) res.append(temp) fo...原创 2019-06-06 13:51:44 · 1095 阅读 · 0 评论 -
最小二叉堆
最小二叉堆优先队列是一种重要的数据结构这点不必多说。作为 Python 使用者,我觉得很自然地会想使用列表及相应的排序算法实现优先队列。但是 insert 方法是 O(n),sort 方法是 O(nlogn),这样的实现貌似不是很高效。实际上实现优先队列的经典方法是使用二叉堆,这种实现使得我们能够在 O(logn) 内排队和出队。这里给出一个二叉堆的基本实现:class BinaryHeap(...原创 2019-06-03 19:39:43 · 1258 阅读 · 0 评论 -
二叉树的非递归遍历
二叉树递归遍历的代码实现是非常简单的,所以很多时候考察一个人代码能力的时候会让写一个二叉树的非递归遍历。三种实现如下:先序遍历# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = None def preorder(root): res = [] if ...原创 2019-07-08 10:38:36 · 117 阅读 · 0 评论 -
使用 Python 刷题时可能会用到的技巧
在使用 Python 刷题的过程中发现了许多以前不知道的操作,用这篇博客记录一下,持续更新。字典的具体实现就是一个哈希表,所以只要是 hashable 的对象都可以作为 key,比如 tuple,就是说可以直接使用一个元组作为字典的键,但是列表是不可以的。w = (1,2,3)i = (2,3,4)dic = {w:1, i:2}print(dic[w])out: 1sort...原创 2019-07-19 22:15:58 · 221 阅读 · 0 评论 -
LeetCode547 findCircleNum Python3
题目描述:班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。...原创 2019-09-19 15:37:38 · 361 阅读 · 0 评论 -
LeetCode334 increasingTriplet Python3
题目描述:给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。要求:时间复杂度为O(N),空间复杂度为O(1)示例 1:输入: [1,4,3,5,6]输出: true示例 2:输入: [5,4,3,2,1]输出: false这道题目因为严格的时间复杂度和空间复杂度,要使用一种“维护最小有序子序列”方法,记得在别的地方也见过。在这道题中,就是维护一个定长的有序数组,...原创 2019-09-29 16:41:09 · 99 阅读 · 0 评论