数据结构与算法
黑桃5200
这个作者很懒,什么都没留下…
展开
-
leetcode——1. 两数之和
题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题思路...原创 2019-11-06 22:15:12 · 140 阅读 · 0 评论 -
Leetcode——703. 数据流中的第K大元素
题目描述设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。示例:int k = 3;int[] arr = [4,5,8,2];KthLargest kthL...原创 2019-11-04 21:22:15 · 194 阅读 · 0 评论 -
数据结构与算法之霍夫曼树+线索二叉树
霍夫曼树霍夫曼树:给定n个权值作为n个叶子节点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为霍夫曼树(Huffman Tree)。叶子节点为A、B、C、D,对应权值分别为7、5、2、4。3.1.a树的WPL = 7 * 2 + 5 * 2 + 2 * 2 + 4 * 2 = 363.1.b树的WPL = 7 * 1 + 5 * 2 + 2 * 3 + 4 *...原创 2019-10-21 11:00:35 · 2773 阅读 · 1 评论 -
数据结构与算法之二叉树
树树的概念树(英语:tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据集合。它是由n(n>=0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:当n=0时,为空树,在任何一棵空树中:有且仅有一个特定的称为根(Root)的节点当n>1时:除根节点外,其余节点可...原创 2019-10-13 17:14:33 · 1000 阅读 · 0 评论 -
数据结构与算法之线性表
线性表文章目录线性表线性表的定义抽象数据类型数据类型抽象抽象数据类型线性表的抽象数据类型定义顺序表顺序表的两种基本实现方式顺序表的地址计算方法顺序表的操作获得元素操作增加元素删除操作插入和删除的时间复杂度顺序表的优缺点Python中的顺序表list的基本实现技术链表头指针与头结点的异同单链表单链表存储结构节点实现单链表的操作链表是否为空链表长度遍历整个链表链表头部添加元素链表尾部添加元素指定位置...原创 2019-09-27 23:00:44 · 660 阅读 · 0 评论 -
数据结构与算法之栈
栈栈的定义官方定义:栈(Stack)是一个后进先出(Last in first out,LIFO)的线性表,它要求只在表尾进行删除和插入操作。可以这样讲,栈是前面讲过的线性表的一种具体形式。小甲鱼定义:所谓的栈,其实也就是一个特殊的线性表(顺序表、链表),但是它在操作上有一些特殊的要求和限制栈的元素必须“后进先出”。栈的操作只能在这个线性表的表尾进行。注:对于栈来...原创 2019-09-27 23:01:38 · 264 阅读 · 0 评论 -
数据结构与算法之队列
队列队列的定义队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。与栈相反,队列是一种先进先出(First In First Out, FIFO)的线性表。与栈相同的是,队列也是一种重要的线性结构,实现一个队列同样需要顺序表或链表作为基础。队列的存储结构队列的链式存储结构队列既可以用链表实现,也可以用顺序表实现。跟栈相反的是,栈一般我们用顺序表来实现,而队列...原创 2019-10-04 18:28:04 · 346 阅读 · 0 评论 -
数据结构与算法之递归与分治
递归与分治递归(Recursion)主要思想递归(Recursion)是指在函数的定义中使用函数自身的方法,即自己调用自己。递归是有去(递)有回(归)的,”递“和“归”,这正是递归思想的精华所在。“有去”是指:递归问题必须可以分解为若干个规模较小,与原问题形式相同的子问题,这些子问题可以用相同的解题思路来解决,就像上面例子中的钥匙可以打开后面所有门上的锁一样;“有回”是指 : 这些问题的...原创 2019-10-09 16:58:50 · 322 阅读 · 0 评论