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与1,0与0的异或运算的结果刚好是两者相加的结果);第二步,通过与运算得到两个数的进位值,因为只有1与1进行与运算的时候才会产生进位,所以产生的进位可以看成是两者先进行与运算再左移一位;
u011116672
·
2015-12-15 14:00
剑指offer系列
之四十六:求1到n的和
题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。如果不能使用上面的操作,那么只能使用递归操作了。使用递归操作的思路是让函数不断调用自己,每调用一次值就减少1,这样完成了递归操作。还有一个问题是如何实现n范围的判断呢?注意到递归调用的n的值最小是1,所以可以通过逻辑与运算,判断是否递归到1。如果递归调用
u011116672
·
2015-12-15 14:00
剑指offer
剑指offer系列
之四十五:左旋转字符串
题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!同上一题思路差不多,可以把需要左旋的字符串看成一部分,其他的字符串看成另一部分,比如字符串“abcde
u011116672
·
2015-12-14 16:00
剑指offer系列
之四十四:翻转单词顺序
题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student.aamI”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“Iamastudent.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?可以发现,要对一个句子进行翻转,可以先对
u011116672
·
2015-12-14 16:00
剑指offer系列
之四十三:扑克牌顺子
题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“OhMyGod!”不是顺子…..LL不高兴了,他想了想,决定大\小王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张
u011116672
·
2015-12-14 16:00
剑指offer
剑指offer系列
之四十二:约瑟夫环问题
题目描述每年六一儿童节,NowCoder都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为NowCoder的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数….这样
u011116672
·
2015-12-14 16:00
剑指offer
剑指offer系列
之四十一:和为S的两个数字且乘积最小
题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。有了上一题的基础,解决这题应该不难,思路与上一题差不多,不过这里只需要要求两个数字即可。所以可以设定两个指针,第一个指针指向数组的第一个元素,第二个指针指向最后一个元素,不断改变第一个指针的位置就可以确定和为S的
u011116672
·
2015-12-13 13:00
剑指offer系列
之四十:和为S的连续正数序列
题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列?GoodLuck!输出描述:输出所有和为S的连续正数序列。序列内按照从
u011116672
·
2015-12-13 13:00
剑指offer系列
之三十九:数组中只出现一次的数字
题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。先考虑只有只有一个数字出现一次的情况,因为其他数字只出现了两次,所以对这两个数字进行异或运算的时候,其结果是0,那么那个只出现一次的数字进行异或运算的时候,其结果必然不是0,所以可以利用这点找出那个只出现一次的数字。现在考虑有两个数字出现一次的情况,仍然借鉴上面的思路,因为只出现一次的那个数字的异或
u011116672
·
2015-12-13 13:00
剑指offer系列
之三十八:判断是否是平衡二叉树
题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。所谓平衡二叉树就对某个结点来讲,其左子树的深度与右子树深度的绝对值不超过1。由于需要对每个节点进行判断,所以可以采用递归的思路进行解决。具体思路是:先求出根节点的左右子树的深度,并对两者进行判断,如果没有满足左右子树的深度的绝对值不超过1的条件,那么就不是平衡二叉树。下一步,自然就是分别对根节点的左右子树进行递归判断了,这样一直到叶子结点。整棵
u011116672
·
2015-12-13 13:00
剑指offer
剑指offer系列
之三十七:二叉树的深度
题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。有了前面寻找二叉树路径的基础之后,解决这题应该不难。根据书上的思路,有一种更简洁的算法,思路如下:如果二叉树只有根节点那么深度就是1,如果只有左子树,那么就是左子树的深度加1就是整棵二叉树的深度;如果只有右子树,那么二叉树的深度就是右子树的深度加1;如果既有左子树又有右子
u011116672
·
2015-12-12 14:00
剑指offer系列
之三十六:数字在排序数组中出现的次数
题目描述统计一个数字在排序数组中出现的次数。因为是排序数组,自然联想到二分查找算法,这样我们在二分的时候可能会获取多个相同的数字。就是说,中间那个位置的值可能刚好是统计的那个值,假设为k。那么k还有可能在前面或者后面出现,在这个基础上继续二分当然也是可以的,如果能够在使用二分查找算法的时候统计出第一个k和最后一个k出现的位置,那么k出现的次数自然就确定了。第一个k出现的位置,可以使用二分查找算法,
u011116672
·
2015-12-12 14:00
剑指offer系列
之三十五:两个链表的第一个公共节点
题目描述输入两个链表,找出它们的第一个公共结点。由于是单链表,所以可以发现从第一个公共节点开始,后面的结点都是相同的,一种思路是从两个链表的尾部开始遍历,直到发现最后一个相同的结点为止,那么这最后一个相同的结点是单链表的角度看就是两个链表的第一个公共节点了。还有一种思路是不需要从尾部开始遍历,毕竟从尾部遍历单链表的话还得使用反转链表的方法进行操作,首先计算出两个链表的长度,让更长的那个单链表先移动
u011116672
·
2015-12-12 14:00
剑指offer系列
之三十四:数组中的逆序对
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。要找到数组中的逆序对,一种思路是每遍历到一个元素的时候就和后面的元素进行一一比较,这种算法的时间复杂度是O(n2),所以不是很理想。我们可以借鉴归并排序的思想,把数组划分为子数组,然后对每个子数组中的逆序对数进行统计,统计完成后再并到一个新的数组中进行统计,这样就化整
u011116672
·
2015-12-12 14:00
剑指offer
剑指offer系列
之三十三:第一个只出现一次的字符
题目描述在一个字符串(1map=newHashMap(); for(charc:ch){ if(map.get(c)!=null){ map.put(c,map.get(c)+1); }else{ map.put(c,1); } } for(inti=0;i
u011116672
·
2015-12-11 16:00
剑指offer系列
之三十二:寻找丑数
题目描述把只包含因子2、3和5的数称作丑数(UglyNumber)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。因为丑数只有2、3和5这三个因子,那么如果一个是丑数的话,一定是可以被这个三个因子整除的,所以我们可以通过把一个数一直被三个因子除,这样最后如果该数变成1的话(因为第一个丑数是1),那么就验证了该数就是丑数。那么如果想
u011116672
·
2015-12-11 15:00
剑指offer系列
之三十一:把数组排成最小的数
题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。根据结果判断,所谓最小的数字实际上就是对数组中所有元素的一个组合。一种笨拙的方法是求出所有元素的全排列,然后对所有排列的值的大小进行排序,那么就可以得到最小的数了。求全排列的算法已经在之前的文章中提到。那么是不是还有
u011116672
·
2015-12-11 15:00
剑指offer系列
之三十:整数中1出现的次数
题目描述求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。有一种比较简洁的思路:由于是一个整数区间,所以可以对每一个数进行判断,那么如何判断某个数中1出现了多少次呢?注
u011116672
·
2015-12-11 15:00
剑指offer
剑指offer系列
之二十九:连续子数组的最大和
题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?这实际上是一个逐
u011116672
·
2015-12-10 14:00
剑指offer系列
之二十八:最小的k个数
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。对于此题,我觉得使用Java实现的话(所有OJ的代码都是使用Java实现的),实在是没有什么难度,就是一个简单的Collections函数的调用嘛,然而就是这么简单的一题,我居然提交代码提交了三次才被AC,实在是郁闷啊。主要的原因在于对边界条件的处理不是很好,简单而言就
u011116672
·
2015-12-10 14:00
剑指offer系列
之二十七:数组中出现次数超过一半的数
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路分析:由于是一个数字,因为其次数超过1,那么其出现的出现综合肯定实际大于其他所有数字之和的。因为如此,我们可以设置一个变量用于辨识这个变量,遇到相同的数字就把次数增加1,如果没有
u011116672
·
2015-12-10 14:00
剑指offer系列
之二十六:输出字符串的全排列
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。结果请按字母顺序输出。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。此题与剑指offer原题存在一些初入,在原题中并没有规定字符串中字符是否有重复的出现。不过思路是一致的,只不过是添加
u011116672
·
2015-12-10 13:00
剑指offer
剑指offer系列
之二十五:二叉搜索树与双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。由于二叉搜索树的中序遍历就是排序的,如果是构造单链表,只需要一次中序遍历就可以了,但现在需要构造双链表,也就是在中序遍历的过程中需要设置每个节点的left与right指针,现在问题是如何设置这两个指针?二叉搜索树有一个特点,就是根节点的左子树上所有节点都比根节点的值小,而右子树
u011116672
·
2015-12-09 15:00
剑指offer系列
之二十四:复杂链表的复制
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。下面是我第一想到的思路:因为next指针是固定的,在复制的时候这点比较好处理,由于特殊指针是任意的,可能是在节点之前,也可能在节点之后,所以必须解决这个棘手问题。不管至少,可以从链表的第一个节点开始遍历,直到该特殊指针指向的节点,并设置该节点的特殊指针。还有一种思路(也是书上的思路):
u011116672
·
2015-12-09 14:00
剑指offer系列
之二十三:二叉树中和为某一值得所有路径
题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。由于是从根节点开始遍历的,所以自然联想到前序遍历,但是问题并没有那么简单,在遍历的过程中需要记录遍历的所有节点值的和,当某条路径遍历完毕之后,还需要切换到另一个节点,比如从某个节点的左孩子切换到右孩子,然后需要重新计算总和,并且需要减去原来那个节点的值
u011116672
·
2015-12-09 14:00
剑指offer
剑指offer系列
之二十二:二叉搜索树的后续遍历序列
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。此题仍然是对二叉树遍历方法的考察,但是与直接对遍历方法的考察不太一样,因为这里的输入是后续遍历的序列,所以要判断该序列是否是某二叉树的后续遍历结果,关键在于找出根节点,根节点的左子树和根节点的右子树,然后继续对左子树和右子树进行判断,直到全部元素访问完毕
u011116672
·
2015-12-08 14:00
剑指offer系列
之二十一:从上到下打印二叉树
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。此题实际上就是二叉树层序遍历方法的考察,具体思路是:使用一个集合(或者栈,但是相对来说使用栈操作会方便一些)来保存遍历的节点,还需要创建一个集合用来保存最后输出的遍历序列。从根节点开始遍历,首先把该节点放入集合中,并输出其值,之后便从集合中移除该节点,不过在此之前需要判断该节点是否有左右孩子,如果有左右(满足其一就可以)孩子,便把左右孩
u011116672
·
2015-12-08 14:00
剑指offer系列
之二十:栈的压入、弹出序列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。要判断一个序列是不是另一个序列的弹出序列,首先我们得知道栈的特点是FIFO,其次,由于压入序列是确定的(这里指的“确定”是说相对
u011116672
·
2015-12-08 14:00
剑指offer系列
之十九:包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。要求时间复杂度是O(1)。还是先说一下思路吧,因为每次方元素进栈的时候不能保证栈顶元素都是最小的,所以需要想办法使得栈顶元素始终是最小的元素,排序是一种思路,但是每次排序还设计重新出栈和入栈,想来应该不是这样的。一种思路是可以利用一个辅助栈,相当于是以空间换时间了。具体思路是:当入栈的新元素原先栈顶元素小的话就该元素放入
u011116672
·
2015-12-08 14:00
剑指offer
剑指offer系列
之十八:顺时针打印矩阵
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:12345678910111213141516则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.由于每打印完一圈都会改变其起始坐标,所以需要先确定矩阵大小与这个起始坐标的关系,比如一个4阶矩阵,第一圈的起始坐标是(0,0),第二圈的起始坐标是(1,1),打印两圈
u011116672
·
2015-12-07 17:00
剑指offer系列
之十七:二叉树的镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树8/\610/\/\57911镜像二叉树8/\106/\/\11975仔细观察原二叉树与镜像二叉树,可以发现镜像二叉树实际上就是把每个节点的左右孩子结点进行了交换,比如在遍历到8这个节点时候,首先交换其左右孩子6和10,其对应的子树也应该进行交换。所以我们可以采用前序遍历的方法进行操作,每当遇到一个结点的时候,
u011116672
·
2015-12-07 16:00
剑指offer系列
之十六:树的子结构
题目描述输入两颗二叉树A,B,判断B是不是A的子结构。这实际上二叉树遍历算法的一种应用,要在原二叉树中查找是否具有某课子树,只需要判断每个节点是否都在二叉树中是否出现即可。所以需要先判断头结点,只有头结点符合要求才继续比较其子树是否符合,一样依次从头结点开始比较直到其左右子树进行比较,如果都符合则说明B是A的子结构。下面是基于这种思路实现的代码(已被牛客AC):packagecom.rhwayfu
u011116672
·
2015-12-07 16:00
剑指offer
剑指offer系列
之十五:合并两个排序的链表
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。这道题我的第一思路这样的:可以先遍历这两个排序的链表,把遍历的结果存放在一个集合中,然后调用库函数Arrays.sort方法完成排序,之后,根据这些排好序的结果重新创建一个链表,即为合并之后但仍然排序的链表。但是这种思路需要额外的List和创建链表的空间开销,而且时间复杂度最快也是O(nlogn)。
u011116672
·
2015-12-07 16:00
剑指offer
剑指offer系列
之十四:反转链表
题目描述输入一个链表,反转链表后,输出链表的所有元素。思路如下:在遍历链表上的每个节点的时候,就修改其指针,当遍历到最后一个结点的时候,整个链表就反转完成了。所以需要创建三个变量:一个是当前遍历的结点,一个是遍历结点的前一个结点,还有一个是当前遍历结点的下一个结点。基于这种思路可以写出如下的实现代码(已被牛客AC):packagecom.rhwayfun.offer; publicclassR
u011116672
·
2015-12-06 15:00
剑指offer系列
之十三:链表中的倒数第k个节点
题目描述输入一个链表,输出该链表中倒数第k个结点。举一个简单的例子,比如链表{1,2,3,4,5},如果要返回倒数第二个节点,也就是k=2,就相当于正数第5-k+1=4个节点,所以我们可以采用两次循环:一次循环得到链表的结点个数;另一次循环则是从链表中找到第n-k+1个节点。虽然是两次循环,但时间复杂度是O(n),需要注意的是,这里仍然需要对链表的边界条件进行判断。基于这种思路写出如下代码:pub
u011116672
·
2015-12-06 15:00
剑指offer
剑指offer系列
之十二:调整数组顺序使奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。这道题第一思路自然是这样的:从头开始遍历这个数组,如果遇到偶数就把这个数之后的所有数往前移动一位,这样数组会留出一个空位,移动完毕之后把该偶数放到该空位即可。这样处理的话需要两次循环,一次是遍历,另一次是移位,所以时间复
u011116672
·
2015-12-06 14:00
剑指offer系列
之十一:数值的整数次方
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。首先,我觉得这道题思路应该很简单,幂的情况无非是三种:正数、0和负数。当幂是0的时候,直接返回1;当幂是负数的时候,需要先把其转化为正数来处理,然后返回其倒数就可以了;当幂是正数的时候,按照正常的计算方法就可以。实际上这道题主要考察时代码的健壮性——就是对幂的情况的考虑是否周全。下
u011116672
·
2015-12-06 14:00
剑指offer
剑指offer系列
之十:二进制中1的个数
题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。比如输入9,9的二进制表示是1001,1的个数是2,所以输出2。这有一个重要结论:一个数与该数减一的结果进行与运算,会把该数右边(低位)第一个1变为0,而该位左边保持不变(高位)。可以举一个简单的例子进行证明:比如1100(对应十进制是12),减去1之后的结果是1011(也就是十进制的11),两个数进行与运算之后,我们发现最
u011116672
·
2015-12-05 15:00
剑指offer系列
之九:矩形覆盖问题
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?我们采用从能够简单到复杂的思路思考这个问题,当n=1的时候,只有一个2*1的矩形,所以只有一种方法,记为f(1)=1;当n=2的时候,是两个2*1的矩形,这时候具有两种方式去覆盖这个矩形了(这时候应该是一个正方形),一种是竖着放,一种是横着放,所以有两种方法,记为
u011116672
·
2015-12-05 15:00
剑指offer系列
之八:跳台阶问题
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。这种问题的思路一般是采用数学归纳法,当n=1时,只有一种跳法;当n=2时,青蛙可以一次跳2级,也可以一次跳两级,需要跳两次,所以有两种跳法;当n=3的时候,首先考虑一次跳1级的情况,由于有3级,所以还有2级没跳,而跳两级的跳法已经在前面n=2的情况中计算得到了;下面考虑一次跳2级的情况,同样跳完2级的
u011116672
·
2015-12-05 15:00
剑指offer
剑指offer系列
之二:字符串空格替换
题目描述:请实现一个函数,将一个字符串中的空格替换成”%20”。例如,当字符串为WeAreHappy,则经过替换之后的字符串为We%20Are%20Happy。看到这题,我的第一思路是这样的:一组单词不是有空格嘛,所以直接使用String类的split函数直接分割为char数组不就好了,不过在这之前需要判断一下第一个位置和最后一个位置是否有空格,然后针对空格的出现情况再进行替换。发现OJ的时候,如
u011116672
·
2015-12-03 11:00
剑指offer
剑指offer系列
之一:从尾到头打印链表
题目描述:给定一个链表,从尾部到头部打印输出链表结点的值。看到这个题目我的基本思路是:首先遍历一遍链表,统计出结点的个数,然后进行第二次遍历把每次访问的结点的值方到一个临时数组中,遍历结束之后,该临时数组中的值与正向遍历链表的值的顺序是一样的。那么在第三次遍历的时候,把上面的临时数组拷贝到另外一个临时数组中,只不过这次拷贝是从最后一个位置的值开始拷贝的,这样第三次遍历结束之后,第二个临时数组中的值
u011116672
·
2015-12-02 22:00
剑指offer
剑指offer系列
——二维数组中,每行从左到右递增,每列从上到下递增,设计算法找其中的一个数
题目:二维数组中,每行从左到右递增,每列从上到下递增,设计一个算法,找其中的一个数 分析: 二维数组这里把它看作一个矩形结构,如图所示: 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 在做这道题的时候我最先考虑的是每次比较对角线上
·
2015-11-11 08:12
二维数组
求double类型的n次方
剑指offer系列
面试题 package com.study; /* * 数值的整数次方 * 要求:实现函数 double Power(double base, int exponent)
·
2015-11-11 00:45
double
斐波那契数列
剑指offer系列
之斐波那契数列 代码 package com.study; /* * 求斐波那契数列第n个数字 * */ public class suanfa7 { /*最原始的递归版
·
2015-11-11 00:44
列
二进制中的1的位数
剑指offer系列
package com.study; /* *求二进制中1的个数 *输入:整数 *返回: 1 的个数 * */ public class suanfa8
·
2015-11-11 00:44
二进制
剑指offer(09)-数组中的逆序对[分治]
剑指offer(09)-数组中的逆序对[分治]逆序对 剑指offer转载于Acm之家题目来自
剑指offer系列
九度1348:题目描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对
xuanyoumeng
·
2015-01-20 23:00
归并排序
逆序对
剑指offer系列
-用两个栈实现队列
oj地址题目1512:用两个栈实现队列时间限制:1秒内存限制:128兆特殊判题:否提交:2360解决:804题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。输入:每个输入文件包含一个测试样例。对于每个测试样例,第一行输入一个n(1=0)2.POP从队列中pop一个数。输出:对应每个测试案例,打印所有pop操作中从队列pop中的数字。如果执行pop操作时,
hackcoder
·
2014-12-04 18:26
剑指offer
上一页
1
2
3
4
5
6
7
下一页
按字母分类:
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
其他