- 博客(7)
- 收藏
- 关注
原创 二叉树的深度优先遍历(DFS)和广度优先遍历(BFS)
二叉树的深度优先遍历(DFS)和广度优先遍历(BFS) 从leetcode的一道题目说起 二叉树的层次遍历 题目链接添加链接描述 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 这个题目明显就是广度遍历二叉树,并将树的每一...
2019-01-11 20:08:56 22260 1
原创 LeetCode 83 删除排序链表中的重复元素 python
删除排序链表中的重复元素 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出: 1->2->3 class Solution: def deleteDuplicates(self, head): """...
2019-01-09 15:56:44 311
原创 08.leetcode(Python):字符串转整数 (atoi)
08.leetcode(Python):字符串转整数 (atoi) class Solution: def myAtoi(self, str): """ :type str: str :rtype: int """ raw_str = str # set of valid
2018-12-12 15:10:41 189
原创 快速排序的python版本
快速排序的python版本 快速排序属于分治算法中最经典的一个实例,不同于冒泡排序和选择排序,快排的思想是选定一个基准元素,根据该元素对列表进行初步排序,选出比该元素小的排在该元素之前,比该元素大的排在其后,然后,在对这两组元素进行递归排序。 关于快排的结构,书本上大致分为两类,单向快排和双向快排。 算法导论介绍的快排属于单向快排,始终从一个方向对列表进行排序,将列表划分。代码如下 def qui...
2018-11-19 20:37:00 268
原创 堆排序的python实现
堆排序的python实现 如图所示,堆类似于一棵二叉树,每个节点最多有两个子结点,根据堆的特点,又分为大顶堆和小顶堆。对于大顶堆,每个结点的值均大于其子结点的值,小顶推则恰恰相反,每个结点的值均小于其子结点的值。 而对排序结构虽然类似于二叉树,不过确是在列表结构上实现排序的,当结点 i 存在子结点时,其左子结点的索引必定为2i,其右结点的索引则必定为2i+1,根据这个,我们便能在列表的基础上实现...
2018-11-16 21:49:01 222
原创 LeetCode 21:合并两个有序链表
LeetCode 21:合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1-&gt
2018-11-12 19:30:37 181
原创 最大子数组问题的python实现
最大子数组问题的python实现 ‘’’ 给定一个无序数组,其中包含正数和负数,要求找出该数组中连续的几个数,其和相加为最大 ‘’’ #1、暴力法,遍历该该数组中所有子数组 import random def max_violent(arr): max=-100 a=0 b=0 for i in range(len(arr)): #每次所取子数组的头 for j in ...
2018-11-07 19:18:45 1405
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人