上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 40 下一页
摘要: 设计并实现最不经常使用(LFU)缓存的数据结构。它应该支持以下操作:get 和 put。 get(key) - 如果键存在于缓存中,则获取键的值(总是正数),否则返回 -1。put(key, value) - 如果键不存在,请设置或插入值。当缓存达到其容量时,它应该在插入新项目之前,使最不经常使用的 阅读全文
posted @ 2018-04-13 14:02 DarrenChan陈驰 阅读(640) 评论(2) 推荐(1)
摘要: 这三个排序的时间复杂度都是O(nlogn),所以这里放到一起说。 1. 快速排序 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法 阅读全文
posted @ 2018-04-12 12:50 DarrenChan陈驰 阅读(3030) 评论(1) 推荐(0)
摘要: 1. 二叉树前序中序后序遍历(递归和非递归) 构造二叉树: 递归版前序遍历: 递归版中序遍历: 递归版后序遍历: 非递归版前序遍历: 非递归版中序遍历: 非递归版后序遍历: 这里用了两个栈,其实一个栈也能实现,这里这样做是因为可以和前序遍历对比着记,比较容易。 2. 二叉树层次遍历 给定一个二叉树, 阅读全文
posted @ 2018-04-11 20:17 DarrenChan陈驰 阅读(647) 评论(0) 推荐(0)
摘要: MySQL专题 1. 主键 超键 候选键 外键 主 键: 数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。 超 键: 在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在 阅读全文
posted @ 2018-04-11 17:12 DarrenChan陈驰 阅读(4142) 评论(0) 推荐(0)
摘要: 1. 10亿个数中找出最大的1000个数 这种题目就是分治+堆排序。 为啥分治?因为数太多了,全部加载进内存不够用,所以分配到多台机器中,或者多个文件中,但具体分成多少份,视情况而定,只要保证满足内存限制即可。什么,如何分?Hash(num)% numOfFiles。 为啥堆排序?首先堆排序是一种选 阅读全文
posted @ 2018-04-11 16:51 DarrenChan陈驰 阅读(1672) 评论(0) 推荐(0)
摘要: 在大型web应用中,缓存可算是当今的一个标准开发配置了。在大规模的缓存应用中,应运而生了分布式缓存系统。分布式缓存系统的基本原理,大家也有所耳闻。key-value如何均匀的分散到集群中?说到此,最常规的方式莫过于hash取模的方式。比如集群中可用机器适量为N,那么key值为K的的数据请求很简单的应 阅读全文
posted @ 2018-04-10 17:21 DarrenChan陈驰 阅读(316) 评论(0) 推荐(0)
摘要: 算法 翻转二叉树 最大连续子串和 给一棵边权树树找到最大路径,要找到两个端点怎么办 给一个字符串和单词列表,判断字符串能不能由这些单词组成 给定一组股票的价格,最多买卖0一次,问最大收益 !!!二叉树任意两个节点之间路径的最大长度 二叉树的深度 lfu 一个链表 奇数位升序偶数位降序 让链表变成升序 阅读全文
posted @ 2018-04-10 15:32 DarrenChan陈驰 阅读(2118) 评论(0) 推荐(0)
摘要: 本文的主要内容来源于MongoDB官方博客,由NoSQLFan补充说明,本文对传统的分布式Cache系统进行了分析,指出了其在缓存重建中会对数据库产生巨大压力的问题。并分析了MongoDB的mmap方案是如何规避这一问题的。 如下图的架构,在数据库前端加上分布式的Cache(比如我们常用的Memca 阅读全文
posted @ 2018-04-10 14:58 DarrenChan陈驰 阅读(287) 评论(0) 推荐(0)
摘要: 我们知道,对象Hash的前提是实现equals()和hashCode()两个方法,那么HashCode()的作用就是保证对象返回唯一hash值,但当两个对象计算值一样时,这就发生了碰撞冲突。如下将介绍如何处理冲突,当然其前提是一致性hash。 1. 开放地址法 开放地执法有一个公式:Hi=(H(ke 阅读全文
posted @ 2018-04-10 10:45 DarrenChan陈驰 阅读(424) 评论(0) 推荐(0)
摘要: 描述: 给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。 给出 num = 38。 相加的过程如下:3 + 8 = 11,1 + 1 = 2。因为 2 只剩下一个数字,所以返回 2。 分析: 这道题并不难,只能说用好递归吧。 方法一: 方法二: 阅读全文
posted @ 2018-04-10 10:04 DarrenChan陈驰 阅读(243) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 40 下一页