随笔分类 -  数据结构

并查集
摘要:1 并查集实际上可以看做是一个有向图的树,除了根节点指向自己,其它的节点都是向上指,指向其父节点, class UnionFindSets: def __init__(self, M): self.tree_num = len(M) # 初始化树的节点数 self.tree_node_num = [ 阅读全文

posted @ 2020-04-28 17:59 吃我一枪 阅读(185) 评论(0) 推荐(0)

堆排序
摘要:1 python默认是小顶堆,想要实现大顶堆入堆的时候要添加负号,出堆的时候也添加负号,求前 k 大,用小根堆,求前 k 小,用大根堆, python用heapq模块来实现小顶堆,它有六个函数,其中四个函数用的最多,一个是heapify()直接对数组进行堆化,两个是heappush() heappo 阅读全文

posted @ 2020-04-15 15:32 吃我一枪 阅读(162) 评论(0) 推荐(0)

KMP算法
摘要:KMP算法的关键和难点是next数组的构建,next数组是由模式串生成的状态转移数组,next[i]表示当模式串needle[i]与主串的的不匹配时,需要跳到needle[next[i]]进行比较, class Solution: def strStr(self, haystack: str, ne 阅读全文

posted @ 2020-04-12 22:40 吃我一枪 阅读(199) 评论(0) 推荐(0)

队列实现
摘要:1 python队列实现,使用队列的时候要用collections来实现,这样更方便,因为它有类似list的用法,而用deque模块实现的队列用的是get,put方法, # python3里面用queue模块 from queue import Queue q = Queue() q.put(3) 阅读全文

posted @ 2020-04-10 11:31 吃我一枪 阅读(138) 评论(0) 推荐(0)

剑指offer
摘要:3 最优解法空间复杂度为O(1),注意要充分利用题中数的范围特征 面试题03. 数组中重复的数字 4 对于查找数的题,不要只会想到二分,有的查找题并不适合二分法查找, 面试题04. 二维数组中的查找 5 字符串题目,很简单,直接暴力查找即可 面试题05. 替换空格 6 链表简单题,学会用递归和栈两种 阅读全文

posted @ 2020-03-10 10:43 吃我一枪 阅读(110) 评论(0) 推荐(0)

二分法
摘要:在二分法中经常需要除2,在python可以用 >> 来实现, a = 15 # 这里进行的是位运算,右移是除,左移是乘,并且除的时候如果除不尽是向下取整 print(a >> 1) print(a >> 2) print(a << 1) # 7 # 3 # 30 View Code ttt 阅读全文

posted @ 2020-02-20 17:07 吃我一枪 阅读(182) 评论(0) 推荐(0)

二叉树的分类性质
摘要:1 满二叉树 二叉树的每一层都是满的,且除了最后一层,每个节点有且仅有两个子节点. 2 完全二叉树 从根节点到倒数第二层是满二叉树,最后一层的叶子节点靠左对齐. 阅读全文

posted @ 2019-12-07 11:59 吃我一枪 阅读(177) 评论(0) 推荐(0)

二叉树的遍历
摘要:1 递归遍历 写法类似于回溯,前序 中序 后序遍历的套路一样,只是保存元素的位置不同.层序遍历的关键是要添加level参数,用于记录节点所在的层数. class TreeNode: def __init__(self, x): self.val = x self.left = None self.r 阅读全文

posted @ 2019-12-06 15:43 吃我一枪 阅读(224) 评论(0) 推荐(0)

递归算法
摘要:写递归函数,一定要先想好递归的终止条件,以及递归函数内需要做什么。 终止条件:p节点和q节点都为空或者两者之一为空,或者两者值不等 再次比较p节点和q节点的左孩子,以及比较p节点和q节点的右孩子 1 二叉数用递归实现起来往往很简洁,对于二叉树来说,由于都是左右分叉,所以如果题目要求是一旦满足条件便返 阅读全文

posted @ 2019-12-05 13:38 吃我一枪 阅读(138) 评论(0) 推荐(0)

回溯算法
摘要:回溯算法的应用有两个关键点: 1 要选择好剪枝条件,即什么时候进行回溯. 2 要控制好传递的参数,回溯函数每次返回来的时候,仍然是原来的值,不要随机更改值,常用的技巧是在函数传参的时候顺便修改参数的值,此外如果要增加限制条件的时候,可以在回溯函数中增加参数.回溯函数每次回溯结束的时候就会把以前的内存 阅读全文

posted @ 2019-11-26 11:27 吃我一枪 阅读(511) 评论(0) 推荐(0)

导航