前言 推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。 2-3树 2-3树,是最…
标签:算法
OJ lintcode O(1)时间检测2的幂次
用 O(1) 时间检测整数 n 是否是 2 的幂次。 注意事项 O(1) 时间复杂度 您在真实的面试中是否遇到过这个题? Yes 样例 n=4,返回 true; n=5,返回 false. class Solution …
lintcode-数字组合II
题目:给出一组候选数字(C)和目标数字(T),找出C中所有的组合,使组合中数字的和为T。C中每个数字在每个组合中只能使用一次 类型:回溯 地址:http://www.lintcode.com/zh-cn/problem/…
一套高可用、易伸缩、高并发的IM群聊架构方案设计实践
所谓的群聊消息系统,就是一种多对多群体聊天方式,譬如直播房间内的聊天室对应的服务器端就是一个群聊消息系统。 2017年9月初,我们初步实现了一套极简的群聊消息系统,其大致架构如下: 系统名词解释: 1)Client : …
看图轻松理解数据结构与算法系列(快速排序)
前言 推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。 快速排序 快速排序由C.…
JVM知识看这篇就够了
2016年左右的时候读了周志明《深入理解Java虚拟机:JVM高级特性与最佳实践》,读完之后受益匪浅,让我对Java虚拟机有了一个完整的认识,这是Jvm书籍中最好的读物之一。 后来结合实际工作中遇到的问题,写了一系列关于…
使用Spark DataFrame实现基于物品的协同过滤算法(ItemCF)
简书不支持Markdown Math语法,请移步https://glassywing.github.io/2018/04/10/spark-itemcf/ 简介 当前spark支持的协同过滤算法只有ALS(基于模型的协同…
你是如何在压力下工作的? - Top 10 面试问题解析
专栏 | 九章算法 网址 | www.jiuzhang.com 面试的过程不一定总是充满欢声笑语,有时你会遇到一些比较棘手的问题,比如在面试中你可能会被问到这样一个问题: 这是面试最常见的问题之一。为了能够完美的回答面试…
深入理解负载均衡经典案例
负载均衡 负载均衡是高可用架构的一个关键组件,主要用来提高性能和可用性,通过负载均衡将流量分发到多个服务器,同时多服务器能够消除这部分的单点故障。 当然负载均衡器本身就是一个单点故障隐患,可以考虑文章后面说的负载均衡双机…
你所不知道的面试陷阱,巧妙避开,面试不再步步惊心
专栏 | 九章算法 网址 | www.jiuzhang.com 你觉得自己比面试官更机智吗?如果准备充分,其实是可以的。在面试中,面试官有些时候会出一些陷阱题来考验你,这并不是出于恶意,而是希望对应聘者的能力有更加敏锐的…
前端常见算法的 JS 实现
原文链接 排序算法 1、冒泡排序 function bubbleSort(arr){ var i = j = 0; for(i=1; i<arr.length; i++){ for(j=0; j<=arr.l…
构造n个成对括号
构造n个成对括号 Generate Parentheses 给出一个整数n,实现一个函数生成n对小括号,n对小括号的左右括弧顺序不限,但应该闭合。 Given n pairs of parentheses, write …