E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
offer-算法之道
剑指
offer-
反转链表
题目描述输入一个链表,反转链表后,输出链表的所有元素。方法1:将单链表储存为数组,然后按照数组的索引逆序进行反转。 方法2:使用三个指针遍历单链表,逐个链接点进行反转。 方法3:从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,最后将第一个节点挪到新表的表尾。/* publicclassListNode{ intval; ListNodenext=n
SoundSlow
·
2016-03-13 13:00
java
算法
链表
单链表
剑指
offer-
链表中倒数第k个结点
题目描述输入一个链表,输出该链表中倒数第k个结点。分析(转载):为了得到倒数第k个结点,很自然的想法是先走到链表的尾端,再从尾端回溯k步。可是输入的是单向链表,只有从前往后的指针而没有从后往前的指针。因此我们需要打开我们的思路。既然不能从尾结点开始遍历这个链表,我们还是把思路回到头结点上来。假设整个链表有n个结点,那么倒数第k个结点是从头结点开始的第n-k-1个结点(从0开始计数)。如果我们能够得
SoundSlow
·
2016-03-13 13:00
java
算法
链表
剑指
offer-
二进制中1的个数
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。publicclassSolution{ publicintNumberOf1(intn){intnum=0; while(n!=0){ n=n&(n-1); num++; } returnnum; }}
SoundSlow
·
2016-03-13 13:00
java
算法
二进制
剑指
offer-
矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?解题思路(转载):观察题目中的矩形,2*n的,是个长条形。本来脑中想象的是复杂的华容道,但是既然只是简单的长条形,那么依然逆向分析。既然是长条形的,那么从后向前,最后一个矩形2*2的,只有两种情况: 第一种是最后是由一个2*(n-1)的矩形加上一个竖着的2*1的矩
SoundSlow
·
2016-03-13 13:00
java
算法
剑指
offer-
二叉搜索树与双向链表
题目:输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建新的结点,只能调整树中结点指针的指向。比如如下图中的二叉搜索树,则输出转换之后的排序双向链表为:在二叉树中,每个结点都有两个指向子节点的指针。在双向链表中,每个结点也有两个指针,他们分别指向前一个结点和后一个结点。由于这两种结点的结构相似,同时二叉搜索树也是一种排序的数据结构,因此在理论上有可能实现二叉搜索树和排序的双向
SoundSlow
·
2016-03-13 13:00
算法
递归
链表
遍历
搜索
剑指
offer-
复杂链表的复制
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。解题思路(转载自网上):图4.8是一个含有5个结点的复杂链表。图中实线箭头表示next指针,虚线箭头表示sibling指针。为简单起见,指向null的指针没有画出。在不用辅助空间的情况下实现O(n)的时间效率。第一步:仍然是根据原始链表的每个结点N创建对应的N’。把N’链接在N的后面。
SoundSlow
·
2016-03-13 13:00
java
数据结构
算法
链表
剑指
offer-
构建乘积数组
题目描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。数组B[]存放A[i]之前各值的乘积,数组C[i]存放A[i]之后各值的乘积,两个相乘即可。importjava.util.ArrayList; publicclassSolution{ p
SoundSlow
·
2016-03-12 14:00
java
算法
剑指
offer-
不用加减乘除做加法
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。publicclassSolution{ publicintAdd(intnum1,intnum2){ intsum=0; intcarry=1; do{ sum=num1^num2; carry=(num1&num2)<<1; num1=sum; num2=carry; }while(num2!=0); r
SoundSlow
·
2016-03-12 14:00
java
算法
剑指
offer-
二叉树的深度
题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度/** publicclassTreeNode{ intval=0; TreeNodeleft=null; TreeNoderight=null; publicTreeNode(intval){ this.val=val; } } */ publicclassSolu
SoundSlow
·
2016-03-12 14:00
java
数据结构
算法
二叉树
剑指
offer-
平衡二叉树
题目描述(做了这么多,提一点:java都是值传递,多以必须构造对象来使前后值对应变化)输入一棵二叉树,判断该二叉树是否是平衡二叉树1、重复遍历结点参考上一题求二叉树的深度,先求出根结点的左右子树的深度,然后判断它们的深度相差不超过1,如果否,则不是一棵二叉树;如果是,再用同样的方法分别判断左子树和右子树是否为平衡二叉树,如果都是,则这就是一棵平衡二叉树。但上面的方法在判断子树是否为平衡二叉树时,会
SoundSlow
·
2016-03-12 14:00
java
数据结构
算法
遍历
二叉树
剑指
offer-
连续子数组的最大和----编程之美-连续子数组的最大和
题目描述(剑指offer):输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1,-2,3,10,-4,7,2,-5,和最大的子数组为3,10,-4,7,2,因此输出为该子数组的和18。publicclassSolution{ publicintFindGreatestSumO
SoundSlow
·
2016-03-12 13:00
java
数据结构
算法
编程之美
剑指
offer-
二叉搜索树的后序遍历序列
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。例如输入数组{5,7,6,9,11,10,8}则返回true,因为这个整数序列是下图二叉树的后序遍历的结果。如果输入的数组是{7,4,6,5},由于没有哪颗二叉搜索树的后续遍历的结果是这个序列,因此返回false。在后序遍历得到的序列中,最后一个数字是树
SoundSlow
·
2016-03-11 10:00
数据结构
递归
二叉树
遍历
boolean
剑指
offer-
从上往下打印二叉树
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。例如输入下图的二叉树,则一次打印出8,6,10,5,7,9,11.这道题实质上考察的就是树的遍历算法,只是这种遍历不是我们熟悉的前序、中序或者后序遍历。由于我们不太熟悉这种按层遍历的方法,可能已下载也想不清楚遍历的过程。因为按层打印的顺序决定应该先打印的根节点,所以我们从树的根节点开始分析。为了接下来能够打印8的结点的两个子节点,我们应
SoundSlow
·
2016-03-11 10:00
算法
遍历
二叉树
ArrayList
《剑指
offer-
名企面试官精讲典型编程题》读后感
首先,不得不说这是一本好书!!!我接触这本书是在学长的推荐下去看的,而且口碑还是挺好的一本书,豆瓣的评分也比较高,当我刚看了它,我就深深的爱上了这本书,到现在为止,我已经看了三遍这本书了,平时无聊时侯也会拿这本书来翻翻。还有就是做一般的算法题,没有思路的时候,我也会翻开这本书来寻找一些解题思路。我喜欢书中一针见血地的解析,对于解题的点可谓是抓的狠准稳,很容易为读者所理解,不像有的书,大话连篇,最后
小凉
·
2016-03-09 20:00
《剑指
offer-
名企面试官精讲典型编程题》读后感
首先,不得不说这是一本好书!!!我接触这本书是在学长的推荐下去看的,而且口碑还是挺好的一本书,豆瓣的评分也比较高,当我刚看了它,我就深深的爱上了这本书,到现在为止,我已经看了三遍这本书了,平时无聊时侯也会拿这本书来翻翻。还有就是做一般的算法题,没有思路的时候,我也会翻开这本书来寻找一些解题思路。我喜欢书中一针见血地的解析,对于解题的点可谓是抓的狠准稳,很容易为读者所理解,不像有的书,大话连篇,最后
小凉
·
2016-03-09 20:00
剑指
offer-
栈的压入、弹出序列(标志:++)
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。解题思路:解决这个问题很直观的想法就是建立一个辅助栈,把输入的第一个序列中的数字依次压入该辅助栈,并按照第二个序列的顺序依次从该
SoundSlow
·
2016-03-09 14:00
java
Class
栈
剑指
offer-
包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数分析(分析转载自此网页):google的一道面试题。我看到这道题目时,第一反应就是每次push一个新元素时,将栈里所有逆序元素排序。这样栈顶元素将是最小元素。但由于不能保证最后push进栈的元素最先出栈,这种思路设计的数据结构已经不是一个栈了。在栈里添加一个成员变量存放最小元素(或最小元素的位置)。每次push一个新元素进
SoundSlow
·
2016-03-09 00:00
java
数据结构
面试题
栈
谷歌
剑指
offer-
顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例如输入以下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1、2、3、4、8、12、16、15、14、13、9、5、6、7、11、10分析:画
SoundSlow
·
2016-03-07 20:00
java
剑指
offer-
判断B是不是A的子结构
题目描述输入两颗二叉树A,B,判断B是不是A的子结构。publicclassSolution001{ booleanresult=false; //先找到root1中是否有root2根节点元素相同值,相同就进入nextHasSubtree publicbooleanHasSubtree(TreeNoderoot1,TreeNoderoot2){ booleanresult=false; if(ro
SoundSlow
·
2016-03-07 18:00
java
二叉树
剑指
offer-
调整数组顺序使奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分1》当不考虑奇数与奇数,偶数与偶数的相对位置时:publicclassSolution{ publicstaticvoidmain(String[]args){ int[]array={1,4,6,8,53,756}; reOrderArray(array); for(
SoundSlow
·
2016-03-07 17:00
java
剑指
offer-
面试题5:从尾到头打印链表
书上的这道题刚看到时冒出的想法就是递归打印,书上的解法还给出利用栈结构的方法,链表遍历一遍,数据保存在栈中。由于栈是后进先出,所以打印出来就是逆序的。递归本质上就是栈结构!方法一:利用栈结构:voidPrintListReversingly(LinkedList*L) { stacknodes; //数据入栈 LinkedList*pNode; pNode=L->pNext; while(pNod
moses1213
·
2016-03-03 22:00
支持向量机通俗导论(理解SVM的三层境界)
支持向量机通俗导论(理解SVM的三层境界)作者:July、pluskid;致谢:白石、JerryLead出处:结构之法
算法之道
blog。
sherri_du
·
2016-03-03 10:00
剑指
offer-
面试题4:替换空格
题目请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为WeAreHappy.则经过替换之后的字符串为We%20Are%20Happy。思路我们首先想到的就是从前往后扫描,如果空格,就替换为%20,但是这样需要移动空格后的元素。我们还有一种方法,首先遍历一遍字符串,统计出空格的个数,并可以由此计算出替换之后的字符串的长度。每替换一个空格,长度增加2,因此替换之后的字符串长度等于原
moses1213
·
2016-02-29 20:00
剑指
offer-
面试题3:二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解法:把二维数组看成一个矩形,每次从数组的右上角取出一个数a与整数作比较。如果恰好等于这个整数,则返回真。如果a大于这个整数,则a所在的列都大于整数,删去这一列重新从右上角取一个数作比较。如果a小于整数,则a所在的行都小于整数,
moses1213
·
2016-02-29 16:00
支持向量机(理解SVM的三层境界)
点击查看原文支持向量机通俗导论(理解SVM的三层境界) 作者:July、pluskid;致谢:白石、JerryLead出处:结构之法
算法之道
blog。
lin_angel
·
2016-02-28 00:00
机器学习笔记
剑指
offer-
面试题1:赋值运算符函数
对于定义一个赋值运算符函数时,需要注意一下几点:(1)函数的返回类型必须是一个引用,因为只有返回引用,才可以连续赋值(2)传入的参数声明为常量引用,可以提高代码效率,同时赋值运算函数内不会改变传入的实例状态(3)一定要记得释放实例自身已有的内存,否则程序容易出现内存泄露(4)注意传入的参数和当前的实例是不是同一个实例,如果是同一个,则不用进行赋值操作,直接返回即可。经典解法:CMyString&C
moses1213
·
2016-02-26 20:00
kmp算法理解
****作者:cncoderalex博客:http://blog.csdn.net/cncoderalex*******************************/声明:下面两段代码摘自结构之法
算法之道
博主
cncoderalex
·
2016-02-25 16:17
算法
支持向量机通俗导论(理解SVM的三层境界)
出处:结构之法
算法之道
blog。
July_
·
2016-02-20 18:07
海量数据处理面试题
教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法
算法之道
blog前言一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文
u010913001
·
2016-02-15 12:00
海量数据处理
《
算法之道
》精华 算法设计部分
《
算法之道
》精华算法设计部分本书作者邹恒明,作者另有一本书《数据结构之弦》,以及《操作系统之哲学原理》都是非常好的书这本书能够算得上是深入浅出。
mengfanrong
·
2016-01-31 17:00
贪心算法,递归算法,动态规划算法比较与总结
一般实际生活中我们遇到的算法分为四类: 一>判定性问题 二>最优化问题 三>构造性问题 四>计算性问题而今天所要总结的算法就是着重解决 最优化问题 《
算法之道
》对三种算法进行了归纳总结
mingaixin
·
2016-01-25 14:00
贪心算法,递归算法,动态规划算法比较与总结
一般实际生活中我们遇到的算法分为四类: 一>判定性问题 二>最优化问题 三>构造性问题 四>计算性问题而今天所要总结的算法就是着重解决 最优化问题 《
算法之道
》对三种算法进行了归纳总结
mingaixin
·
2016-01-25 14:00
贪心算法,递归算法,动态规划算法比较与总结
一般实际生活中我们遇到的算法分为四类: 一>判定性问题 二>最优化问题 三>构造性问题 四>计算性问题而今天所要总结的算法就是着重解决 最优化问题 《
算法之道
》对三种算法进行了归纳总结
mingaixin
·
2016-01-25 14:00
Algorithms
Ref:LBS新应用:地理围栏技术Ref:地理围栏算法解析Ref:高德LBS开放平台Ref:从B树、B+树、B*树谈到R树Ref:结构之法
算法之道
Ref:The-Art-Of-Programming-By-JulyRef
Nick.Chung
·
2016-01-15 11:00
剑指
offer-
旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。注意:选要考虑数组多个相同2,2,1,2,2:importjava.util.ArrayList; publicclassSolution{ publicintminNumberInRo
SoundSlow
·
2016-01-09 00:00
二分查找
数组
剑指
offer-
重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。还没有通过。。弄了一晚上,我就郁闷了,明明逻辑一样,为什么别人的通过了?即便是几乎是照抄者的,只是改了变量名而已,就不能通过。。。好奇呀,实在没办法了,都零
SoundSlow
·
2016-01-08 23:00
exception
二叉树
遍历
数组
剑指
offer-
合并排序链表
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。java:(考虑周全就行) /* publicclassListNode{ intval; ListNodenext=null; ListNode(intval){ this.val=val; } }*/ publicclassSolution{ publicListNodeMerge(
SoundSlow
·
2016-01-07 23:00
java
链表
递归算法
剑指
offer-
数值的整数次方
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。全面高效的递归算法:a^n=(a^n/2)*(a^n/2)publicclassSolution{ publicdoublePower(doublebase,intexponent){ if(0==exponent) return1; if(exponent>0){ if(1==e
SoundSlow
·
2016-01-07 12:00
power
递归算法
剑指
offer-
变态跳台阶
问题: 一个台阶总共有n级,如果一次可以跳1级,也可以跳2级......它也可以跳上n级。此时该青蛙跳上一个n级的台阶总共有多少种跳法? 解析:高中数学题都可以解决(感慨:大学里学的很多都是在高中学的,有时候感觉如果把大学的四年换成高中的再三年许多人在知识水平上都能够达到研究生的水平,貌似大部分研究生也是咋混日子,很多学生学了等于没学,或者把所有的科目都在当做文化课在学习,只知
SoundSlow
·
2016-01-07 11:00
算法
数列
剑指
offer-
两个栈模拟队列
java的逻辑很简单:两个栈模拟队列: importjava.util.Stack; publicclassSolution{ Stackstack1=newStack(); Stackstack2=newStack(); publicvoidpush(intnode){ stack1.push(node); } publicintpop(){ if(stack2.isEmpt
SoundSlow
·
2016-01-07 10:00
java
队列
栈
剑指
offer-
替换空格
java里面的空格替换好像太过简单了。。。:StringreplaceSpace(StringBufferstr){if(str==null)returnnull;for(inti=0;i
SoundSlow
·
2016-01-06 22:00
String
字符串
StringBuffer
剑指
offer-
肺部拉契-青蛙跳台阶
很简单一个题,青蛙跳台阶和费布拉奇有点不同,f(n)=f(n-1)+f(n-2)有个条件n>2,另外费布拉奇的优化问题,书上很清楚。 总算是自己什么都没看,完完整整敲了下来。也很快通过了(没有许多杂乱的细节需要考虑): publicclassSolution{ publicintJumpFloor(inttarget){ intn=target;if(n==0) r
SoundSlow
·
2016-01-06 22:00
算法
剑指
offer-
从尾到头打印链表
有些东西原理很简单,有些问题一看就知道怎么做,但任凭你怎么敲怎么修改思考多久就是不知道哪儿错了,是能说懂其中的原理和把这个原理实现出来距离还是很远的,就如同谁都知道面包是面粉做的,也大概知道步骤,但大多数人并不会做,或者说做出来的可能更像是个馒头。也是看的别人的:importjava.util.ArrayList;importjava.util.Stack;publicclassSolut
SoundSlow
·
2016-01-06 21:00
链表
剑指
offer-
二维数组查找
看着问题抄下来了,好多细节,有点烦:p41-《剑指offer》publicclassSolution{ publicbooleanFind(int[][]array,inttarget){ introws=array.length;intcolumns=array[0].length;booleanf=false;if(array!=null&&rows>0&&columns>0){int
SoundSlow
·
2016-01-06 21:00
二维数组
【字符串匹配】KMP
算法之道
修订于2012-06-18,心急的读者可以着重看“有趣的字符串匹配提示”,这个例子看懂了,KMP也就差不多了。闲话上午算法考试的时候,感觉OK,前一两星期幸好把图算法都吃透了一遍,复习的时候节省了时间:)。前一半考题不理解背书的都可以,有几题没记过,不靠谱地照着理解写下来。最后的吹水题让我想起了之前的比赛,有一题是曹老师给的实验题,刚好比赛上出现了,而且相似度极高。要是高考,曹老师可就红了:)。这
·
2015-12-09 10:11
字符串
从头到尾彻底理解KMP
转自july(结构之法
算法之道
)的博客:http://blog.csdn.net/v_july_v/article/details/70418271.引言 本KMP原文最初写于2年多前的2011年12
geekmanong
·
2015-12-03 22:00
July大神---SVM讲解
出处:结构之法
算法之道
blog。
peihaozhu
·
2015-11-29 16:00
CSDN专访左程云,
算法之道
算法的庞大让很多人畏惧,程序员如何正确的学习并应用于面试、工作中呢?今天,CSDN邀请了IBM软件工程师、百度软件工程师、刷题5年的算法热爱者左程云,来担任CSDN社区问答栏目的第二十六期嘉宾,届时会接受广大网友的提问,欢迎各位网友前来与左老师一起交流。左程云,华中科技大学本科(计算机科学与技术)、芝加哥大学硕士(计算机科学)。IBM软件工程师,百度工程师,GrowingIO工程师、刷题5年的算法
djd1234567
·
2015-11-24 10:00
支持向量机通俗导论
出处:结构之法
算法之道
blog。前言 动笔写这个支持向量机(supportvectormachine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好懂,要深入
weilianyishi
·
2015-11-16 14:00
SVM
支持向量机通俗导论(理解SVM的三层境地)
出处:结构之法
算法之道
blog。 前言 动笔写这个支持向量机(support vector machine)是费了不少劲和困
·
2015-11-13 21:41
SVM
上一页
19
20
21
22
23
24
25
26
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他