随笔分类 -  数据结构算法

摘要:1.排序方法 首先能想到的就是先排序,然后取前1000个数,或者部分排序,只排出前1000个数就行 缺点:这些方法的时间复杂度都比较高 2,分治法 可以使用分治法,这有点类似快排中partition的操作,随机选一个数t,然后对整个数组进行partition,会得到两部分,前一部分的数都大于t,后一 阅读全文
posted @ 2019-07-16 15:29 割肉机 阅读(864) 评论(0) 推荐(0) 编辑
摘要:题目一:在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但是不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7,的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数组2或者3。(n个元素,n种可能的取值 阅读全文
posted @ 2019-07-16 15:17 割肉机 阅读(7584) 评论(0) 推荐(0) 编辑
摘要:介绍 leetcode 题解,记录自己的 leetcode 解题之路。 本仓库目前分为五个部分: 第一个部分是 leetcode 经典题目的解析,包括思路,关键点和具体的代码实现。 第二部分是对于数据结构与算法的总结 第三部分是 anki 卡片, 将 leetcode 题目按照一定的方式记录在 an 阅读全文
posted @ 2019-06-28 15:05 割肉机 阅读(5428) 评论(0) 推荐(0) 编辑
摘要:概述 关于树的概念很多,B树,B+树,红黑树等等。 但是你去翻翻百度百科,或者用百度或者谷歌搜索一下中文的树结构的介绍,全都是狗屁。没有哪个中文网站是真正精确解释树的定义的,尤其是百度百科。 下面我要根据我自己的学习和理解。给出一些中文的定义。 什么是二叉树(Binary Tree) 二叉树是每个节 阅读全文
posted @ 2019-06-25 09:59 割肉机 阅读(14618) 评论(3) 推荐(4) 编辑
摘要:排序,一个历史话题,目前已经有了很多非常成熟的排序算法,虽然可能在 ACM 比赛中并不会让你具体实现一个排序算法,但是在面试当中,或者在和别人吹牛的过程中,口述,或者手撕一个排序算法,本文列举了一些常用的算法。 首先,给大家分享一个视频,视频中演示了各个算法的实际元素操作思路,既是欣赏,也是学习。 阅读全文
posted @ 2019-01-16 08:14 割肉机 阅读(2480) 评论(0) 推荐(0) 编辑
摘要:leetCode-88. 合并两个有序数组 2018年10月16日 20:13:38 kangyucheng 阅读数:29 标签: LeetCodepython数组 更多 个人分类: 百练OJ与leetcode 所属专栏: 百练OJ与leetcode解题代码分享 leetCode-88. 合并两个有 阅读全文
posted @ 2018-11-14 16:11 割肉机 阅读(279) 评论(0) 推荐(0) 编辑
摘要:算法 - 合并两个有序数组成一个有序数组 最近看到一个算法题目,觉得很有意义,就自己查资料,摸索着自己实现了代码,特记录一下。 题目:有两个数组a[]和b[],将它们合并成数组c[],需要c[]也是有序数组。 有两种实现思路: 1. 定义一个新数组,长度为两个数组长度之和,将两个数组都copy到新数 阅读全文
posted @ 2018-11-14 15:41 割肉机 阅读(9579) 评论(0) 推荐(0) 编辑
摘要:原文:The top data structures you should know for your next coding interview 译者:Fundebug 为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。 1976年,一个瑞士计算机科学家写一本书《A 阅读全文
posted @ 2018-08-30 08:22 割肉机 阅读(5780) 评论(0) 推荐(0) 编辑
摘要:推荐算法 目前主流的推荐算法主要包含内容关联算法, 协同过滤算法。 内容关联算法(Content-Based) CB算法的原理是将一个item的基本属性, 内容等信息提取出来, 抽成一个taglist, 为每个tag赋一个权重。 剩下的事情就跟一个搜索引擎非常类似了, 将所有item对应的tagli 阅读全文
posted @ 2018-08-18 13:26 割肉机 阅读(1350) 评论(0) 推荐(0) 编辑
摘要:目录 B+树 B+树的插入操作 B+树的删除操作 回到顶部 B+树 B+树和二叉树、平衡二叉树一样,都是经典的数据结构。B+树由B树和索引顺序访问方法(ISAM,是不是很熟悉?对,这也是MyISAM引擎最初参考的数据结构)演化而来,但是在实际使用过程中几乎已经没有使用B树的情况了。 B+树的定义十分 阅读全文
posted @ 2018-08-16 09:54 割肉机 阅读(6870) 评论(0) 推荐(0) 编辑
摘要:Top K问题在数据分析中非常普遍的一个问题(在面试中也经常被问到),比如: 从20亿个数字的文本中,找出最大的前100个。 解决Top K问题有两种思路, 最直观:小顶堆(大顶堆 -> 最小100个数); 较高效:Quick Select算法。 LeetCode上有一个问题215. Kth Lar 阅读全文
posted @ 2018-08-14 21:53 割肉机 阅读(610) 评论(0) 推荐(0) 编辑
摘要:摘于:http://my.oschina.net/leejun2005/blog/135085 目录:[ - ] 1、认识 PriorityQueue 2、应用:求 Top K 大/小 的元素 3、PriorityQueue 在 hadoop 中的应用: 4、REF: 1、认识 PriorityQu 阅读全文
posted @ 2018-08-14 21:52 割肉机 阅读(3827) 评论(0) 推荐(0) 编辑
摘要:转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6605916.html (Java中栈、队都可以用LinkedList来实例化,栈的方法:push()/pop();队的方法:offer()/poll()) 二叉树的按层打印==两个指针last和newlast: 阅读全文
posted @ 2018-08-14 21:43 割肉机 阅读(446) 评论(0) 推荐(0) 编辑
摘要:一,问题介绍 给定一棵二叉树,按照层序遍历的顺序打印二叉树。但是要求,每一行打印一层数据。 二,算法分析 借助二叉树的层序遍历来实现。但是需要额外两个变量。一个变量用来保存当前层 还未打印的结点个数,另一个变量保存下一层待打印的结点个数。 二叉树层序遍历参考:http://www.cnblogs.c 阅读全文
posted @ 2018-08-14 21:42 割肉机 阅读(1325) 评论(0) 推荐(0) 编辑
摘要:给你机会发出声音,但是不给你机会证明高层的决定是错的 RT: 时间复杂度O(n) 空间复杂度O(1) 原理就是有指针指向父节点和当前的节点,左孩子必指向右孩子,右孩子必指向父节点的下一个节点的左孩子 void Solution::yahooTree(TreeNode *root) { if (roo 阅读全文
posted @ 2018-08-14 21:32 割肉机 阅读(322) 评论(0) 推荐(0) 编辑
摘要:一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但现在 阅读全文
posted @ 2018-08-14 20:59 割肉机 阅读(29910) 评论(5) 推荐(4) 编辑
摘要:数组和链表将对象插入指定位置时,大致可以分为两个部分: 1、找到要插入元素的位置 2、进行插入操作 可以得到式子:找到位置所需时间 + 插入所需时间 = 将对象插入指定位置所需总时间 由此可以先假设几个值: 找到插入元素的位置涉及的变量: 要插入的位置为z 获取一个对象引用所需时间m 进行插入操作涉 阅读全文
posted @ 2018-07-30 16:08 割肉机 阅读(786) 评论(0) 推荐(0) 编辑
摘要:要解决这个问题首先要了解什仫是中位数,所谓的中位数就是在一组有序的数字中找到中间的那个数字。如果数字的个数是奇数则直接返回中间的那个数,如果数字的个数是偶数此时这组数据的中位数有两个,取中间两个数的平均值即可。 想法一、不论用什仫排序算法使得该组数据有序,直接取中间值即可。 这种只要你掌握常见的排序 阅读全文
posted @ 2018-07-30 14:22 割肉机 阅读(880) 评论(0) 推荐(1) 编辑
摘要:0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行, 阅读全文
posted @ 2018-07-30 14:18 割肉机 阅读(337) 评论(0) 推荐(0) 编辑
摘要:Hash碰撞冲突 我们知道,对象Hash的前提是实现equals()和hashCode()两个方法,那么HashCode()的作用就是保证对象返回唯一hash值,但当两个对象计算值一样时,这就发生了碰撞冲突。如下将介绍如何处理冲突,当然其前提是一致性hash。 1.开放地址法 开放地执法有一个公式: 阅读全文
posted @ 2018-07-27 13:11 割肉机 阅读(9540) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示