![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法分析
一路洒满阳光XD
这个作者很懒,什么都没留下…
展开
-
散列-分离链接法(数据结构与算法分析-C语言描述)
散列是一种以常数平均时间执行插入、删除和查找的技术。但是,那些需要元素间任何排序信息的操作将不会得到有效的支持。 理想的散列表是一个具有固定大小的数组。把表的大小记作TableSize,通常的习惯是让表从0到TableSize - 1变化。每个关键字被映射到从0到TableSize - 1这个范围中的某个数,并且被放到适当的单元中。这个映射就叫做散列函数(hash function)。原创 2015-08-18 22:27:55 · 1154 阅读 · 0 评论 -
typedef关键字与结构体、结构体指针的定义
一使用typedef定义结构体二使用typedef定义结构体指针一、使用typedef定义结构体typedef用来定义新的数据类型,通常typedef与结构体的定义配合使用。使用typedef的目的使结构体的表达更加简练(所以说typedef语句并不是必须使用的)。定义一个名字为TreeNode的结构体类型(现在并没有定义结构体变量,并不占用内存空间):struct TreeNode{原创 2015-08-17 11:20:18 · 31159 阅读 · 24 评论 -
判断是否为丑数(Ugly Number)(leetcode-263)
“丑数”是正数,且质数因子只包含2、3、5。(Ugly numbers are positive numbers whose prime factors only include 2, 3, 5。)关键在于:丑数一定是有限个2、3、5的乘积,因为所有的正整数都能分解成1与一个或多个素数的乘积。如果一个数是丑数,那么反复除以2、3、5后,一定会是1;如果一个数不是丑数,那么反复除以2、3、5后,一定还原创 2016-07-26 15:16:37 · 4383 阅读 · 0 评论 -
爬楼梯(leetcode-70)
需要爬一个n阶楼梯来到达楼梯顶部,每次可以爬1阶也可以爬2阶。求共有多少种爬法?递归:到达n的“前一步”走法可以是:从n-1处爬1阶楼梯,或者从n-2处爬2阶楼梯。那么递归表达式即写成return climbStairs(n - 1) + climbStairs(n - 2),递归结束条件为n=1或n=2。递归方法会导致超时,爬楼梯的爬法数目符合斐波那契数列。(为什么?可参考:爬楼梯与斐波那契数原创 2016-07-27 23:42:18 · 5636 阅读 · 0 评论 -
二叉树的最大深度(leetcode-104)
如果根节点为空,则深度为0,返回0,递归的出口如果根节点不为空,那么深度至少为1,然后我们求他们左右子树的深度比较左右子树深度值,返回较大的那一个通过递归调用# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x#原创 2016-07-19 22:36:25 · 1946 阅读 · 0 评论 -
翻转二叉树(leetcode-226)
递归得到叶子节点,从叶子节点开始依次到根节点进行翻转class Solution(object): @classmethod def invertTree(self, root): if root == None: return None else: root.left = Solution.inver原创 2016-07-20 00:05:15 · 397 阅读 · 0 评论 -
判断二叉树是否相等(leetcode-100)
递归依据:两棵树相同位置节点的子树也必须相等递归出口:两个节点全是None,相等;只有一个是None,不等;两个都不是None,但节点值不相等,不等。# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x#原创 2016-07-20 11:49:43 · 849 阅读 · 0 评论 -
按层次生成、遍历二叉树
对于二叉树一般是按深度生成和遍历,比如使用递归方法进行先序遍历、中序遍历、后序遍历。这次我们按层次生成和遍历二叉树。这种遍历方式关键在于需要使用一个队列保存“已处理该节点,但还没处理它的子节点”这样的节点。# Definition for singly-linked list.class BinTree(object): def __init__(self, x): sel原创 2016-08-08 08:50:46 · 4393 阅读 · 5 评论