数据结构与算法
Leadingme
干啥啥不行,写bug第一名!
展开
-
带权重图中两点的最短距离(优先队列实现)
# -*- coding:utf-8 -*-""" Author: leadingmeMail:[email protected]:leadingme.top"""from queue import PriorityQueueimport mathgraph = { "A": {"B":5,"C":1}, "B": {"A":5,"C":2,"D"...原创 2020-04-16 17:37:52 · 902 阅读 · 0 评论 -
广度优先搜索(BFS), 深度优先搜索(DFS) 解决图两节点最短路径问题
# -*- coding:utf-8 -*-""" Author: leadingmeMail:[email protected]:leadingme.top"""# 用队列实现广度优先搜索# 用栈实现深度优先搜索from queue import Queue, LifoQueuegraph = { "A": ["B", "C"], "B": ...原创 2020-04-15 16:57:07 · 932 阅读 · 0 评论 -
二叉树-序列化与反序列化(利用双向队列实现)
# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Codec: # 导入双向队列 ...原创 2020-04-12 15:43:41 · 108 阅读 · 0 评论 -
栈 -(最小栈的实现)python描述
# -*- coding:utf-8 -*-""" Author: leadingmeMail:[email protected]:leadingme.top"""# 最小栈的实现""" 算法要求: 设计一个支持push、pop、top操作并能在常数时间内检索到最小元素的栈 -> push(x): 将元素 x 推入栈中 ...原创 2020-04-08 12:18:27 · 294 阅读 · 0 评论 -
二叉树-(将有序数组转换成二叉搜索树)
# -*- coding:utf-8 -*-""" Author: leadingmeMail:[email protected]:leadingme.top"""# 将有序数组转换成二叉搜索树""" 算法要求: 将一个按照升序排序的有序数组转换为一颗高度平衡的二叉搜索树 示例: 输入: [-10, -3, 0, 5...原创 2020-04-08 11:43:15 · 552 阅读 · 0 评论 -
二叉树-( 二叉树的层次遍历) 方法1 对层迭代解法、方法2 双向队列
# -*- coding:utf-8 -*-""" Author: leadingmeMail:[email protected]:leadingme.top"""# 二叉树的层次遍历""" 算法要求: 给定一颗二叉树,返回其按层次遍历的节点值(逐层地,从左到右访问所有节点) 示例: 输入: 3 ...原创 2020-04-08 11:15:07 · 245 阅读 · 0 评论 -
二叉树-(二叉树的最大深度、验证二叉搜索树、判断对称二叉树)
二叉树的最大深度# -*- coding:utf-8 -*-""" Author: leadingmeMail:[email protected]:leadingme.top"""""" 算法要求: 给定一颗二叉树,找其最大深度二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点 解题思路: 一般...原创 2020-04-07 16:39:45 · 317 阅读 · 0 评论 -
链表-(判断环形链表)算法
# -*- coding:utf-8 -*-""" Author: leadingmeMail:[email protected]:leadingme.top"""# 环形链表""" 算法要求: 给定一个链表,判断链表中是否有环为了表示给定链表的环,这里使用整数pos来表示链表尾部连接到链表中的位置(索引从0开始)。如果pos为-1,那么...原创 2020-04-04 10:50:04 · 930 阅读 · 0 评论 -
链表-(判断回文链表)算法
# -*- coding:utf-8 -*-""" Author: leadingmeMail:[email protected]:leadingme.top"""# 回文链表""" 算法要求: 判断一个链表是否为回文链表 示例1: 输入: 1->2 输出: false 示例2: 输入:...原创 2020-04-04 10:12:19 · 526 阅读 · 0 评论 -
链表-(合并两个有序链表)算法
# -*- coding:utf-8 -*-""" Author: leadingmeMail:[email protected]:leadingme.top"""# 合并两个有序链表""" 算法要求: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表所有节点组成的。 示例: 输入: 1-&...原创 2020-04-03 20:45:19 · 853 阅读 · 0 评论 -
链表-(翻转链表)的两种算法
常规方法:# -*- coding:utf-8 -*-""" Author: leadingmeMail:[email protected]:leadingme.top"""# 翻转链表""" 算法要求: 翻转一个单链表(不带头节点) 示例: 输入: 1->2->3->4->5->NULL ...原创 2020-04-03 13:31:27 · 499 阅读 · 0 评论 -
链表-(删除链表中倒数第n个节点)的两种算法
# -*- coding:utf-8 -*-""" Author: leadingmeMail:[email protected]:leadingme.top"""# 删除链表的倒数第n个节点""" 算法要求: 给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点 示例: 给定一个链表 1->2->3->4...原创 2020-04-02 16:26:20 · 559 阅读 · 0 评论 -
查找算法原理与实现[顺序查找、二分法查找、插值查找、分块查找](python版)
1. 顺序查找原理顺序查找就是将数列从头到尾按照顺序查找一遍,只需遍历一遍列表,然后逐一判断,顺序查找是最容易理解,时间复杂度最高的排序方法(不需要事先排序)代码实现# -*- coding:utf-8 -*-""" Author: leadingmeMail:[email protected]:leadingme.top"""def seque...原创 2020-03-31 21:11:35 · 1971 阅读 · 0 评论 -
排序算法原理与实现[冒泡、选择、插入、快速、哈希、计数、归并](python版)
1. 冒泡排序:原理冒泡排序算法的基本原理就是比较相邻两个数字的大小。将两个数中比较大的那个数交换到靠后的位置,不断交换下去就可以将最大的那两个数放到队列的尾部。然后重头再次交换)(交换list.lenght-1次),直到将数列排成有序数列。代码实现# -*- coding:utf-8 -*-""" Author: leadingmeMail:[email protected]...原创 2020-03-30 19:52:27 · 1510 阅读 · 1 评论