自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 原生js实现拖拽功能基本思路

如果要设置物体拖拽,那么必须使用三个事件,并且这三个事件的使用顺序不能颠倒。 onmousedown:鼠标按下事件onmousemove:鼠标移动事件onmouseup:鼠标抬起事件   拖拽的基本原理就是根据鼠标的移动来移动被拖拽的元素。鼠标的移动也就是x、y坐标...

2016-10-22 20:56:20

阅读数 13752

评论数 4

原创 大数据量的算法面试题

原链接:http://blog.csdn.net/v_july_v/article/details/7382693 何谓海量数据处理?    所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导...

2016-10-08 23:08:30

阅读数 746

评论数 0

原创 数据结构:红黑树解析

本文参考:Google、算法导论、STL源码剖析、计算机程序设计艺术。 推荐阅读: Left-Leaning Red-Black Trees, Dagstuhl Workshop on Data Structures, Wadern, Germany, February, 20...

2016-10-08 23:07:34

阅读数 382

评论数 0

原创 Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)

class文件简介及加载      Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Clas...

2016-10-08 23:06:10

阅读数 477

评论数 0

原创 数据挖掘常用算法整理

前言:   找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不...

2016-10-08 23:04:55

阅读数 637

评论数 0

原创 网易2017校园招聘笔试题:数字翻转

对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如: 如果 X = 123,则rev(X) = 321; 如果 X = 100,则rev(X) = 1. 现在给出整数x和y,要求rev(rev(x) + rev(y))为多少?  输入描述: 输入为一行,x、...

2016-10-08 23:04:22

阅读数 276

评论数 0

原创 网易2017校园招聘笔试题:计算糖果

A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息: A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数. 现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保...

2016-10-08 23:02:43

阅读数 198

评论数 0

原创 网易2017校园招聘笔试题:优雅的点

小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方。小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他。 例如:半径的平方如果为25 优雅的点就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5...

2016-10-08 23:01:53

阅读数 729

评论数 0

原创 网易2017校园招聘笔试题:回文序列

如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如: {1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列,  {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。 现在给出一个数字序列,允许...

2016-10-08 23:01:09

阅读数 367

评论数 0

原创 (剑指Offer)面试题59:对称的二叉树

题目: 请实现一个函数,用来判断一颗二叉树是不是对称的。 注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 思路: 对于一棵二叉树,从根结点开始遍历, 如果左右子结点有一个为NULL,那么肯定不是对称二叉树; 如果左右子结点均不为空,但不相等,那么...

2016-10-08 22:45:56

阅读数 291

评论数 0

原创 剑指Offer面试题51(Java版):数组中重复的数字

题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复的次数。请找出数组中任意一个重复的数字。 例如如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3. 解决这个问题的一...

2016-10-08 22:41:57

阅读数 388

评论数 0

原创 剑指Offer面试题37(Java版):两个链表的第一个公共结点

题目:输入两个链表,找出它们的第一个公共结点。 面试的时候碰到这道题,很多应聘者的第一反应就是蛮力法:在第一链表上顺序遍历每个结点,没遍历到一个结点的时候,在第二个链表上顺序遍历每个结点。如果在第二个链表上有一个结点和第一个链表上的结点一样,说明两个链表在这个结点上重合,于是就找到了他们的公...

2016-10-08 22:40:18

阅读数 473

评论数 0

原创 剑指Offer面试题36(Java版):数组中的逆序对

题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数 例如在数组{7,5,6,4}中,一共存在5对逆序对,分别是{7,6},{7,5},{7,4},{6,4},{5,4}。 看到这个题目,我们的第一反应就是顺序扫...

2016-10-08 22:39:04

阅读数 540

评论数 0

原创 剑指Offer面试题35(java版):第一个只出现一次的字符

题目:在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出'b'. 看到这样的题目,我们最直观的想法就是从头开始扫描这个字符串中的字符。当访问某个字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只...

2016-10-08 22:37:59

阅读数 426

评论数 0

原创 剑指Offer面试题30(java版):最小的k个数

题目:输入n个整数,找出其中最小的k个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4 这道题最简单的思路莫过于把输入的n个整数排序,排序之后位于最前面的k个数就是最小的k个数。这种思路的时间复杂度是O(nlogn),面试官会提示我们还有更快的算法。 解法...

2016-10-08 22:36:50

阅读数 282

评论数 0

原创 剑指Offer面试题29(java版):数组中出现次数超过一半的数字

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现5次,超过数组长度的一半,因此输出2. 解法一:基于Partition函数的O(n)算法: 我们的算法是受快速排序的算法的启发。在...

2016-10-06 16:49:01

阅读数 274

评论数 0

原创 剑指Offer面试题17(Java版):合并两个排序的链表

题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如输入图中的链表1和链表2,则合并之后的升序链表3所示。 这是一个经常被各公司采用的面试题。在面试过程中,我们发现应聘者最容易犯两个错误:一是在写代码之前没有对合并的过程想清楚,最终合并出来的链...

2016-10-06 16:47:00

阅读数 448

评论数 0

原创 剑指offer面试题14(Java版):调整数组顺序使奇数位于偶数的前面

题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 1、基本实现: 如果不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,每碰到一个偶数时,拿出这个数字,并把位于这个数字后面的所有的数字往前面挪动一位。挪...

2016-10-06 16:39:14

阅读数 346

评论数 0

原创 剑指Offer面试题13(java版):在O(1)时间删除链表节点

题目:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。 在单向链表中删除一个节点,最常规的方法无疑是从链表的头结点开始,顺序遍历查找要删除的节点,并在链表中删除该节点。 比如图a所表示的链表中,我们要删除节点i,可以从链表的头节点a开始顺序遍历,发现节点h的m...

2016-10-06 16:32:56

阅读数 282

评论数 0

原创 剑指offer面试题15(java版):链表中倒数第k个结点

题目: 输入一个链表,输出该链表中倒数第k哥结点。  为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。  例如一个链表有6个结点,从头结点开始它们的值依次是1,2,3,4,5,6.这个链表的倒数第3个结点是值为4的结点 为了得到第K个结点,很自然的想法是先走到链表的尾...

2016-10-06 16:31:31

阅读数 322

评论数 0

原创 剑指Offer面试题9(java版):斐波那契数列

题目一:写一个函数,输入n,求斐波那契数列的第n项。斐波那契数列的定义如下: 1、效率很低效的解法,挑剔的面试官不会喜欢 很多C语言的教科书在讲述递归函数的时候,都户拿Fibonacci作为例子,因此很多的应聘者对这道题的递归解法都很熟悉。 下面是实现代码 ...

2016-10-06 16:28:15

阅读数 298

评论数 0

原创 剑指offer面试题7(java实现):用两个栈实现队列

题目 用两个栈实现一个队列。请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入节点和在队列头部删除节点的功能。 思路 先了解一下,栈与队列之间的不同,栈的结构决定它具有“后进先出”的入栈出栈特点,而队列则是有“先进先出”的特点。设想一下,如果对一种数据进行一...

2016-10-06 16:25:33

阅读数 1017

评论数 0

原创 剑指Offer面试题3(Java版):二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下的数序排列。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回true,如果要查找5,由于数组不含有该数字,...

2016-10-06 16:21:48

阅读数 370

评论数 0

原创 剑指Offer面试题4(Java版):替换空格

题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy",则输出”We%20are%20happy". 原因:在网络编程中,如果URL参数中含有特殊字符,如:空格、“#”等,可能导致服务器端无法获得正确的参数值。我们需要将这些特殊符号转...

2016-10-06 16:19:57

阅读数 349

评论数 0

原创 剑指Offer面试题5(Java版):从尾到头打印链表

题目:输入一个链表的头结点,从尾到头反过来打印出每个节点的值。 看到这道题,很多人的第一反应是从头到尾输出将会比较简单,于是我们很自然的想到把链表中的节点的指针反转过来,改变链表的方向,然后就可以从头到尾输出了。但该方法改变原来链表的结构。是否允许在打印链表的时候修改链表的结构?...

2016-10-06 16:15:41

阅读数 368

评论数 0

原创 剑指Offer面试题6(Java版):重建二叉树

题目:输入某二叉树的前序遍历和中序遍历的结果,请重新构造出该二叉树。假设输入的前序遍历和中序遍历的结果中不包含重复的数字。例如输入的前序遍历序列为{1,2,4,7,3,5,6,8}和中序遍历为{4,7,2,1,5,3,6,8},则重建出二叉树并输出它的头结点。 在二叉树的前序遍历序列中,第一...

2016-10-06 16:14:50

阅读数 265

评论数 0

原创 剑指Offer面试题10(Java版):二进制中的1的个数

题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1,因此如果输入9,该函数输出2. 1、可能引起死循环的解法 这是一道很基本的考察二进制和位运算的面试题。题目不是很难,面试官提出问题之后,我们很快形成一个基本的思路:先判断证书二...

2016-10-06 16:11:16

阅读数 296

评论数 0

原创 剑指Offer面试题16(Java版):翻转链表

题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 解决与链表相关的问题总是有大量的指针操作,而指针操作的代码总是容易出错的。很多的面试官喜欢出链表相关的问题,就是想通过指针操作来考察应聘者的编码功底。为了避免出错,我们最好先进行全面的分析。在实际软件开发周期中,...

2016-10-06 16:08:38

阅读数 329

评论数 0

原创 剑指Offer面试题18(Java版):树的子结构

题目:输入两棵二叉树A和B,判断B是不是A的子结构。 例如图中所示的两棵二叉树,由于A中有一部分子树的结构和B 是一样的,因此B是A的子结构。 要查找树A中是否存在和树B结构一样的子树,我们可以分两步:第一步在树A中找到和B的根节点的值一样的结点R,第二步再判断树A中以R为...

2016-10-06 16:05:50

阅读数 298

评论数 0

原创 剑指Offer面试题40(Java版):数组出现一次的数字

题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。  * 请些程序找出这两个只出现一次的数字。要求时间复杂度为O(n),空间复杂度为O(1) 例如输入数组{2,4,3,6,3,2,5,5},因为只有4,6这两个数字只出现一次,其他数字都出现了两次,所以输出4,6 这是...

2016-10-06 15:57:47

阅读数 315

评论数 0

原创 剑指Offer面试题39(Java版):二叉树的深度

题目:输入一棵二叉树的根节点,求该数的深度。从根节点到叶结点依次进过的结点(含根,叶结点)形成树的一条路径,最长路径的长度为树的深度。 例如,如下图的二叉树的深度为4,因为它从根节点到叶结点的最长的路径包含4个结点(从根结点1开始,经过2和结点5,最终到达叶结点7) 我们可...

2016-10-06 15:45:04

阅读数 335

评论数 0

原创 剑指Offer面试题38(Java版):数字在排序数组中出现的次数

题目:统计一个数字在排序数组中出现的次数。例如输入排序数组为 {1,2,3,3,,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4 既然输入的数组是排序的,那么我们很自然的想到利用二分查找算法。在题目给出的例子中,我们可以先用二分查找算法找到第一个3.由于3可能出现多...

2016-10-06 15:33:34

阅读数 294

评论数 0

原创 剑指Offer面试题36(Java版):数组中的逆序对

题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数 例如在数组{7,5,6,4}中,一共存在5对逆序对,分别是{7,6},{7,5},{7,4},{6,4},{5,4}。 看到这个题目,我们的第一反应就是顺序扫...

2016-10-06 11:18:18

阅读数 194

评论数 0

原创 剑指Offer面试题34(Java版):丑数

题目:丑数  * 我们把只包含因子2,3,5的数称为丑数(Ugly Number).  * 求按从小到大的顺序的第1500个丑数。  * 例如6,8都是丑数,但14不是,因为它含有因子7.习惯上我们把1当作第一个丑数 方法一:逐个判断每个整数是不是丑数的解法,直观但不够高效: 所谓一个数m是...

2016-10-06 10:55:42

阅读数 312

评论数 0

原创 剑指Offer面试题32(Java版):从1到n整数中1出现的次数

题目:输入一个整数n,求从1到n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11,和12,1一共出现了5次。 方法一:不考虑时间效率的解法,靠它拿到Offer有点难: 如果在面试的时候碰到这个问题,应聘者大多能想到最直观的方法,也就是累加1到n中...

2016-10-06 10:38:42

阅读数 843

评论数 0

原创 剑指Offer面试题27(Java版):二叉搜索树与双向链表

题目:输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建新的结点,只能调整树中结点指针的指向。 比如如下图中的二叉搜索树,则输出转换之后的排序双向链表为: 在二叉树中,每个结点都有两个指向子节点的指针。在双向链表中,每个结点也有两个指针,他们分别指向前...

2016-10-05 22:38:38

阅读数 295

评论数 0

原创 剑指Offer面试题26(Java版):复杂链表的复制

题目描述: 复制一个复杂链表,在复杂链表中,每个结点除了有一个next指针指向下一个结点外,还有一个sbiling指向链表中的任意结点或者null。 下图是一个复杂链表的示例,Null的指针没有画出。  解题思路: 1.很直观的解法就是分成两步: 1).复制原始链表上的每一个结点,并用ne...

2016-10-05 22:16:38

阅读数 1095

评论数 0

原创 剑指Offer面试题25(Java版):二叉树中和为某一值的路径

题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶结点所经过的所有的结点形成一条路径。 如下图,输入二叉树和整数22,则打印出两条路径,第一条路径包含结点10,12,第二条路径包含的结点为10,5,7. 一般的数据结构和算法的教材...

2016-10-05 22:07:54

阅读数 481

评论数 0

原创 剑指Offer面试题24(Java版):二叉搜索树后序遍历序列

题目描述:  输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是返回true,否则返回false。假设输入的数组的任意两个数字互不相同。 解题思路:  要明确两个概念:  1. 二叉搜索树的特点,就是如果有对任何一个非空结点,假如左子树存在,那么左子树的中任意一个结...

2016-10-05 21:58:10

阅读数 161

评论数 0

原创 剑指Offer面试题23(Java版):从上往下打印二叉树

题目:从上往下打印二叉树的每个结点,同一层的结点按照从左到右的顺序打印。例如输入下图的二叉树,则一次打印出8,6,10,5,7,9,11. 这道题实质上考察的就是树的遍历算法,只是这种遍历不是我们熟悉的前序、中序或者后序遍历。由于我们不太熟悉这种按层遍历的方法,可能已下载也想不清...

2016-10-05 21:41:51

阅读数 393

评论数 0

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