SkipList及其在redis中的应用

1.SkipList是什么? SkipList其实是针对链表查找效率低的特点的一种改进,结合链表和二分查找,查询时间复杂度为O(logn)的一种数据结构 特点: 1)链表中结点是有序的 2)能够满足类似二分查找的“跳跃式”查找 2.SkipList如何实现类“二分查找”?(图片引用自ht...

2018-11-17 23:41:03

阅读数 107

评论数 2

OAuth认证原理与第三方登录

1.背景 以下例子引用知乎“OAuth 授权的工作原理是怎样的?足够安全吗?”中李天放的回答 假如你在某个网站A上使用微博进行第三方登录,那么你可以想象新浪微博就是你的家。偶尔你会想让一些人(第三方应用)去你的家里帮你做一些事,或取点东西。你可以复制一把钥匙(用户名和密码)给他们,但这里有三个问题...

2017-11-29 21:35:48

阅读数 476

评论数 0

匈牙利算法

因为“趣味算法系列之--匈牙利算法”这篇文章写得相当精彩,本文许多从中借鉴。Blog链接为:http://blog.csdn.net/dark_scope/article/details/8880547 匈牙利算法是一种通过使用增广路径来解决二分图的最大匹配的算法,由匈牙利数学家Edmonds于1...

2017-05-26 20:34:19

阅读数 407

评论数 0

并查集与欧拉回路

因为“并查集详解”这篇文章写得相当精彩,本文有许多从中借鉴。链接:http://blog.csdn.net/dellaserss/article/details/7724401 1.并查集 并查集采用树形数据结构,用于解决不相交集合的合并和查询问题。 我们来看一个例子:假设存在若干个城镇,其中一些...

2017-05-26 11:02:43

阅读数 236

评论数 0

华为OJ之Sudoku-Java

1.题目描述 2.基本思路 目前想到的是暴力求解。 (1)从第一行开始(第一行没找到,则第二行开始找,依此类推)找到第一个值为0的数的坐标(i,j),然后记录该i行中已经出现过的数字,以及j列中已经出现的数字,还有当前坐标所在的小九宫格中已经出现的数字,把1-9中第一个尚未出现的...

2017-03-12 20:03:40

阅读数 457

评论数 0

华为OJ之称砝码

1.题目描述 2.基本思路 这道题目需要使用动态规划来做,可以这么来想,要看能否称出某中质量X,在已知能称出质量Y,且如果存在某种重量a的砝码有k个,且X=Y+a*n(0 3.实现代码 import java.util.Scanner; public cl...

2017-03-12 16:45:23

阅读数 209

评论数 0

图之最短路径之弗洛伊德算法

1.基本思想 通过Floyd计算图G=(V,E)中各个顶点的最短路径时,需要引入一个矩阵S,矩阵S中的元素a[i][j]表示顶点i(第i个顶点)到顶点j(第j个顶点)的距离。 初始时,矩阵S中顶点a[i][j]的距离为顶点i到顶点j的权值;如果i和j不相邻,则a[i][j]=∞。然后,对矩阵S进行...

2017-03-11 16:08:48

阅读数 439

评论数 0

TCP三次握手和四次挥手

1.建立连接(三次握手) TCP是传输层控制协议,提供可靠服务的连接服务,通过三次握手机制来建立一个可靠的连接。 SYN攻击 在三次握手过程中,服务器发送SYN_ACK之后,收到客户端ACK之前的TCP连接称为半连接。此时服务器处于SYN_RECV状态。当收到ACK之后,服务器进入ESTAB...

2016-10-15 19:09:00

阅读数 177

评论数 0

http与https的介绍

1.http和https的基本区别 2.https的工作原理 3.http和https各自的优缺点

2016-10-12 16:43:07

阅读数 310

评论数 0

JVM内存分区和GC回收算法

1.JVM内存分区 2.GC回收算法

2016-10-09 21:47:35

阅读数 1475

评论数 0

struts2工作流程

首先,看看struts2框架的执行结构图 工作流程总结: 1.客户端通过Action或JSP页面发出一个HttpServlet请求 2.服务器通过web.xml配置,将该请求经过一系列Filter过滤器处理,最终被FilterDispacher接收 3.FilterDispat...

2016-10-02 21:36:19

阅读数 158

评论数 0

经典面试题之字符串的全排列

1.题目描述 输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,输出abc,acb,bac,bca,cab和cba 2.问题分析 这个问题我们一开始看起来会比较困难,但是如果仔细分析一下排列的实质,或许很快会有思路。我们来看排列的实质,字符串的abc第一个字符分别与后边的字...

2016-08-31 16:47:59

阅读数 608

评论数 0

经典面试题之最长滑道(2017爱奇艺内推笔试题)

1.题目描述 输入输出: 2.思路分析 这道题实际上就是要求从最大值到最小值所能经过的最长路径,那么我们可以这么考虑,对于每一个坐标点,它到最小值的必定有一个最长路径len,那么我们只要找出所有坐标点到最小值的最长路径,然后再从中找到最大值即为所求答案。这样,我们的问题就只剩下如何求一...

2016-08-29 20:08:00

阅读数 3058

评论数 0

经典面试题之两个链表的第一个公共结点

题目描述:输入两个链表,找出它们的第一个公共结点。 我们先看下边这个图: 对于单向链表而言,从两个单链表第一个公共结点开始,之后它们的所有结点都是重合的,不可能再出现分叉。 对于题目,我们最简单的想法就是在第一个链表上顺序遍历每个结点,每遍历到一个结点时,在第二个链表上顺序遍历每个结点, 直到找...

2016-08-28 17:44:53

阅读数 850

评论数 0

经典面试题之数组中的逆序对

1.题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 2.解题思路 这道题主要是归并排序思想的应用,如果对归并排序不了解,请...

2016-08-23 10:44:19

阅读数 193

评论数 0

数据库设计范式详解

原文详见:https://www.zhihu.com/question/24696366/answer/29189700   原文作者:刘慰 1.第一范式 第一范式要求关系中的每个属性不可再分,下图就不符合1NF 修改为下图后则满足1NF 2.第二范式 我们先来看这么一个例子,有如下这样一个表...

2016-08-22 20:42:51

阅读数 296

评论数 1

Java跨平台的原理

1.Java编译过程与C/C++编译过程的差异 C/C++编译器生成一个对象的代码时,该代码是在某一特定硬件平台下运行而生成的。因此在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。 Java编译时却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中...

2016-08-21 23:34:49

阅读数 2136

评论数 0

图之最短路径之迪杰斯特拉算法

一般最短路径算法有迪杰斯特拉算法和弗洛伊德算法,对于有负权值的需要使用弗洛伊德算法,这里主要讲解迪杰斯特拉算法 1.算法思想 设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径 , 就将加入到集合S...

2016-08-17 16:52:40

阅读数 491

评论数 0

数据结构之最小生成树

1.最小生成树 给定一个带权的无向连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树 最小生成树的算法有普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法 应用场景:要在n个城市之间铺设光缆,主要目标是要使这 n 个城市的任意两个之间都可以通信,但铺设光缆的费用很...

2016-08-11 23:19:08

阅读数 418

评论数 0

数据库索引详解

1.什么是索引?索引的常见类型有什么? 索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。 分类:这里我们主要介绍常见的聚集索引和非聚集索引 聚...

2016-08-10 15:46:27

阅读数 10050

评论数 1

提示
确定要删除当前文章?
取消 删除
关闭
关闭