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面试题
9:斐波那契数列及其拓展青蛙跳台阶问题
菲波那切数列公式:最简单的递归方法,但效率非常低下,面试官一般会再问你有没有优化的方法publiclongFibonacci(intn){if(n==0)return0;if(n==1)return1;returnFibonacci(n-1)+Fibonacci(n-2);}优化之后的方法,避免重复计算已经计算过的值publiclongFibonacci(intn){long[]a={0,1};i
newy
·
2018-11-26 21:16
Java面试题
算法编程
剑指Offer面试题
:把数组排成最小的数
把数组排成最小的数题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323分析最开始想到的是将所有的排列情况枚举出来,然后使用字符串比较对于所有的情况进行排序,但是这样就做成了全排列的题(涉及到回溯)其实也不需要全局对比,只需要局部进行比较就可以得到“升序”的顺序自定义Co
Mi4o
·
2018-09-09 23:29
剑指Offer面试题
剑指Offer面试题
:机器人的运动范围
机器人的运动范围题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7=18。但是,它不能进入方格(35,38),因为3+5+3+8=19。请问该机器人能够达到多少个格子?分析这道题自己调试了一会儿,主要问题出在没
Mi4o
·
2018-09-04 21:10
剑指Offer面试题
剑指offer面试题
:求二叉树的镜像
题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像二叉树的结点定义如下:structTreeNode{intval;structTreeNode*left;structTreeNode*right;TreeNode(intx):val(x),left(NULL),right(NULL){}};原树镜像后函数实现://递归思路先遍历二叉树数当有叶子结点时交换其叶子结点当叶子结点为空时返回cla
Important_
·
2018-09-04 10:30
剑指Offer面试题
:字符串的排列
字符串的排列题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。分析只需要得到所有的字符串,然后对集合进行排序即可对于这种问题,可以先从abc的例子入手,从特殊解到一般解第一步:没有固定的字
Mi4o
·
2018-09-01 22:41
剑指Offer面试题
剑指Offer面试题
02:单例模式
Intent确保一个类只有一个实例,并提供该实例的全局访问点。ClassDiagram使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。ImplementationⅠ懒汉式-线程不安全以下实现中,私有静态变量uniqueInstance被延迟实例化,这样做的好处是,如果没有用到该类,那么就
bbbpppwagg
·
2018-09-01 20:31
剑指Offer面试题
:滑动窗口的最大值
滑动窗口的最大值题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5};针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个:{[2,3,4],2,6,2,5,1},{2,[3,4,2],6,2,5,1},{2,3,[4,2,6],
Mi4o
·
2018-08-30 15:41
剑指Offer面试题
剑指offer面试题
14----剪绳子(动态规划,贪心算法)
一、动态规划时间复杂度O(n^2)#includeusingnamespacestd;intmaxProduct(intlength){if(lengthtempmax)tempmax=(product[j]*product[i-j]);}product[i]=tempmax;}Resultmax=product[length];delete[]product;returnResultmax;}i
虚心学习进步
·
2018-08-28 09:00
动态规划
贪心
剑指Offer面试题
:斐波那契数列 | 跳台阶 | 矩形覆盖
斐波那契数列题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39分析求解斐波那契数列是特别基础和常见的一道题,解法参考《剑指Offer》(1)递归求解效率不高,基本不会在实际中使用publicclassSolution{publicintFibonacci(intn){if(n==0)return0;if(n==1)return1
Mi4o
·
2018-08-19 11:31
剑指Offer面试题
剑指Offer面试题
:重建二叉树
重建二叉树题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。分析这是一道比较基础的二叉树问题前序遍历的第一个节点一定是根节点,首先得到根节点,然后利用根节点将中序遍历分为左子树部分+根节点+右子树部分然后发
Mi4o
·
2018-08-18 16:59
剑指Offer面试题
剑指offer面试题
31--栈的压入、弹出队列
本文参考自:原文地址输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)classSolution{public:boolIsPopOrder(vec
caiyun987
·
2018-08-14 09:23
博客
数据结构算法(九) 之 树的 2 道面试题 62 & 63
剑指Offer面试题
62(Java版):序列化二叉树题目:请实现两个函数,分别用来序列化和反序列化二叉树。
innovatorCL
·
2018-07-12 17:23
数据结构算法(七) 之 树的 2 道面试题 58 & 59
剑指Offer面试题
58(Java版):二叉树的下一结点(中序遍历)题目:给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点?
innovatorCL
·
2018-07-12 17:30
剑指Offer面试题
4:String字符串空格替换---java实现
面试题4:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“Wearehappy.”,则输出“We%20are%20happy.”。我的实现是借助了新的内存空间,即创建了一个新数组往里移动数据。代码实现:packagecom.practice;publicclassStringReplace{privatestaticStringstringReplace(Stringstr){if
yushen0
·
2018-06-30 17:00
java
剑指offer
面试题
替换String中的空格
java
剑指offer
剑指Offer面试题
16: 数值的整数次方
//面试题16:数值的整数次方//题目:实现函数doublePower(doublebase,intexponent),求base的exponent//次方。不得使用库函数,同时不需要考虑大数问题。代码实现如下:#includeusingnamespacestd;//考虑正负0指数,以及base是0的特殊情况doublePower(doublebase,intexponent);doublePow
love music.
·
2018-06-29 20:04
C++
算法
剑指Offer
剑指Offer
剑指Offer面试题
25:二叉树中和为某一值的路径
参考博客:https://www.jianshu.com/p/c661cbe1d421题目描述:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。importjava.util.ArrayList;/**publicclassTreeNode{intval=0;TreeNodeleft=null;TreeNo
chenkaibsw
·
2018-06-18 10:32
剑指offer
剑指Offer面试题
33二叉搜索树的后序遍历序列java版
题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。分析:在后序遍历序列中,最后一个数字是树的根节点的值。数组中前面的数字可以分为两部分:第一部分是左子树节点的值,它们都比根节点的值小;第二部分是右子树节点的值,它们都比根节点的值大。所以先取数组中最后一个数,作为根节点。然后从数组开始计数比根节点小的数,并
灯火阑珊不知处
·
2018-05-07 16:35
剑指Offerjava版本
C++找出数组中重复的数字(
剑指offer面试题
3-1)
第一块程序是剑指offer原题,找出任意一个重复的数字,第二块程序是找出所有重复的数字//
剑指offer面试题
3(一):找出数组中重复的数字//题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内
shuangyumelody
·
2018-03-19 08:18
C++
面试题
剑指offer面试题
33:二叉搜索树的后序遍历序列(C++)
时间限制:1秒空间限制:32768K热度指数:164257题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。AC代码:classSolution{public:boolVerifySquenceOfBST(vectorsequence){if(!sequence.size())returnfalse;r
grace_fang
·
2018-03-07 15:55
c/c++
剑指offer解题报告
剑指offer面试题
5
从尾到头打印链表题目:输入一个链表的头节点,从未到头反过来打印出每个节点的值。链表结构如下:StructListNode{Intm_nkey;ListNode*m_pNext;}看到此题,我想很多人第一反应都会是将链表的节点指针反过来,改变链表的方向,这样就会很快打印出链表的每个节点的值,可是这样的方法改变了原有的链表结构,这种方法不太好,有局限性,如果面试官不让对链表的结构进行改变,那么这个
程序渣渣的后花园
·
2018-03-03 22:19
数据结构
剑指Offer面试题
14:剪绳子 Java代码实现
剑指Offer面试题
14:剪绳子原题描述:面试题14:剪绳子给你一根长度为n的绳子,请把绳子剪成m段(m,n都是大于1的整数)。每段绳子长度的可能最大乘积是多少。
hh_zheng
·
2017-11-07 21:16
剑指offer_Java实现
《剑指Offer》Java版目录(源码下载)
《剑指Offer》PDF版下载:点我书中全部50道题目的Java实现如下,java源码下载:点我
剑指Offer面试题
1面试题2单例模式
剑指Offer面试题
3二维数组查找
剑指Offer面试题
4替换空格
剑指
login_sonata
·
2017-08-18 10:27
《剑指Offer》Java版
《剑指Offer》Java版
剑指offer面试题
14----调整数组顺序使奇数位于偶数前面
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。思路:构建两个列表,依次遍历原数组,检查数组内元素,若为奇数则添加入第一个列表,若为偶数则添加入第二个列表。最后将以上两个列表拼接进行输出。时间复杂度O(n),空间复杂度O(n).Python代码如下classSoluti
minningl
·
2017-08-02 23:34
剑指Offer题目:从扑克牌中随机抽 5 张牌,判断是不是顺子,即这 5 张牌是不是连续的。 2-10 为数字本身,A 为 1,J 为 11,Q 为 12,K 为 13,而大小王可以看成任意的 数字。
剑指Offer面试题
44:扑克牌的顺子从扑克牌中随机抽5张牌,判断是不是顺子,即这5张牌是不是连续的。2-10为数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意的数字。
ShouCeng
·
2017-08-01 15:05
Java
算法
剑指offer面试题
-二叉树的前序中序后序遍历
题目传入一个树的根节点,分别采用非递归实现树的前序,中序,后序遍历。节点定义如下。structBinaryTreeNode{BinaryTreeNode(chardata):_pLeftChild(NULL),_pRightChild(NULL),_data(data){}BinaryTreeNode*_pLeftChild;BinaryTreeNode*_pRightChild;char_dat
Hyacinth_Dy
·
2017-07-26 20:12
面试题
剑指Offer面试题
35第一个只出现一次的字符,面试题36数组中的逆序对
面试题35:第一个只出现一次的字符例如输入“abaccdeff”,输出b。思路:从头到尾挨个扫描肯定是不行的,复杂度O(n^2)太高了。所以用哈希,空间换时间。相关题目1:输入两个字符串,从第一个字符串中删除在第二个字符串中出现过的字符。可以用哈希来存储第二个字符串中的字符,然后扫描第一个字符串,用O(1)的时间就能判断字符在不在第二个字符串里,总时间复杂度O(n)。相关题目2:删除字符串中所有重
login_sonata
·
2017-07-16 15:10
《剑指Offer》Java版
《剑指Offer》Java版
剑指offer面试题
49 把字符串转换成整数 (java实现)
解题思路:1.判断字符串输入是否合法,重点判断一个字符串除第一个字符外是否包含非数字字符,若包含,则返回0,不包含,则进行转换成整数操作;2.取出字符串第一个字符,遍历第一个字符之后的所有字符,计算除第一个字符外的所有字符串组成的整数大小;3.若第一个字符不是正负号,则加上第一个字符对应的数字大小。publicclassSolution{publicintStrToInt(Stringstr){i
Logan24
·
2017-07-14 19:21
剑指offer面试题
剑指Offer面试题
33把数组排成最小的数,面试题34丑数
面试题33:把数组排成最小的数输入一个正整数数组,把数组中所有的数拼接起来组成一个数,输出最小的。比如输入{3,32,321},输出321323。思路1:全排列,类似面试题28,n个数共有n!个排列,复杂度比较高。思路2:重写一种比较大小的方法,详见代码。Java实现如下:importjava.util.Arrays;importjava.util.Comparator;publicclassPr
login_sonata
·
2017-07-02 18:41
《剑指Offer》Java版
《剑指Offer》Java版
剑指offer面试题
26-复杂链表的复制
题目:给定一个复杂链表,对其进行复制产生一个新的复杂链表。复杂链表中每个节点中有三个部分:数据域,指向链表中下一个节点的指针,指向链表中其他任意一个节点的指针。复杂链表中节点的定义如下:structcomplexLinkNode{intdata;//数据域structcomplexLinkNode*next;//指向下一个节点的指针structcomplexLinkNode*ptr;//指向链表中
bian_qing_quan11
·
2017-07-01 22:57
剑指offer 面试题49 把字符串转换成整数
剑指offer面试题
49把字符串转换成整数题目:把字符串转换成整数packagealgorithm.foroffer.top50;importorg.junit.Test;/***description
LYZ0907
·
2017-06-04 21:57
剑指offer
剑指offer
丑数问题及变种小结
/u/yzwall[2]blog.csdn.net/j_dark/1判断丑数因子只包含2,3,5的数称为丑数(UglyNumber),习惯上把1当做第一个丑数lintcode517uglynumber
剑指
yzwall
·
2017-06-04 00:00
LintCode
面试
面试题15:链表中的倒数第k个结点
剑指Offer面试题
15:链表中倒数第k个结点题目描述:输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。
HaiJing1995
·
2017-05-30 11:00
js
链表
前端
面试题
算法与数据结构
剑指offer 面试题30 最小的 k 个数
剑指offer面试题
30最小的k个数题目:输入n个整数,找出其中最小的k个数。例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数是1、2、3、4。
LYZ0907
·
2017-05-29 17:18
剑指offer
剑指offer
剑指offer 面试题29 数组中出现次数超过一半的数字
剑指offer面试题
29数组中出现次数超过一半的数字题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。
liyazhou0215
·
2017-05-29 16:00
剑指offer 面试题22 栈的压入、弹出序列
剑指offer面试题
22栈的压入、弹出序列题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。
liyazhou0215
·
2017-05-28 10:00
面试题
栈
剑指offer 面试题21 包含 min 函数的栈
剑指offer面试题
21包含min函数的栈题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数,在该栈中,调用min、push及pop的时间复杂度都是O(1)。
liyazhou0215
·
2017-05-27 21:00
面试题
剑指offer 面试题4 替换空格
剑指offer面试题
4替换空格题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“Wearehappy.”,则输出”We%20are%20happy.”。
liyazhou0215
·
2017-05-23 11:00
面试题
剑指offer 面试题3 二维数组中的查找
剑指offer面试题
3二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
liyazhou0215
·
2017-05-22 22:00
面试题
剑指offer面试题
06:重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重新建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},重建二叉树并输出它的头结点。分析:1、前序遍历中的第一个数据一定是根节点,以上面为例,1为根节点,然后在中序遍历中找到该节点,1左边的数据构成其左子树,右边的数据构成其右子树。
SunCherryDream
·
2017-05-18 16:00
在O(1)时间删除链表节点(Java实现)
该题为
剑指offer面试题
13packagecn.itcast.day422;/***@authorJacob前提:假设要删除的节点存在于链表中*/publicclassDemo1{publicvoiddeleteNode
JacobGo
·
2017-04-22 09:40
剑指offer(Java实现)
在O1时间删除链表节点
【剑指offer】实现包含min函数的栈
摘要
剑指offer面试题
21:实现一个一个带有min函数的栈这个栈包含一个min函数---该函数能够得到栈的最小元素,,,,但是有一个要求,,,,,push、pop、min函数的时间复杂度为O(1);实现方法要想得到最小元素
WX_East
·
2017-03-12 20:00
栈
剑指Offer面试题
6重建二叉树(根据前序中序输出后序)
面试题6:重建二叉树。输入二叉树的前序遍历和中序遍历结果,重建二叉树。假设输入的前序和中序结果都不含重复的数,例如:前序12473568,中序47215386,输出后序遍历结果。思路:所谓前中后序即根节点的访问顺序。前序的第一个数肯定是根节点,而根节点在中序里的中间位置,其左为左子树,右边是右子树。假设中序的根节点左边有3个数,可知根节点的左子树有3个节点,此时这三个数的顺序即是左子树的中序。那么
login_sonata
·
2017-02-26 15:01
《剑指Offer》Java版
《剑指Offer》Java版
剑指offer面试题
8
旋转数组的最小数字#include#includeintfind(int*arr,intsz){intleft=0;intright=sz-1;intmid=(left+right)/2;while(arr[left]>=arr[right]){if(right-left==1){mid=right;break;}if(arr[mid]arr[left]){left=mid;}mid=(left+
Dakuan_chen
·
2016-11-08 20:22
C语言
剑指offer面试题
10
一个数二进制中一的个数常规解法#includeintcount_one_bits(unsignedintvalue){inta[100];inti=0,num=1,m=0;m=value;for(i=0;m!=0;i++){a[i]=m%2;m=m/2;num++;}for(i=0;iintcount_one_bit(intvalue){inti=0,n=vaule,count=0;for(i=0
Dakuan_chen
·
2016-11-05 08:23
C语言
剑指Offer面试题
12:打印1到最大的n位数 Java实现
题目:打印1到最大的n位数输入数字n,按顺序打印出从1到最大n位十进制数。比如输入n=3,则打印出1,2,3……999.算法分析:如果我们在数字前面补0的话,就会发现n位所有十进制数其实就是n个从0到9的全排列。也就是说,我们把数字的每一位都从0到9排列一遍,就得到了所有的十进制数。只是打印的时候,数字排在前面的0我们不打印出来罢了。算法源程序:以下程序参考自博客:http://blog.csdn
安心写代码吧
·
2016-10-30 22:23
剑指offer
算法
面试题
剑指Offer
剑指offer面试题
28:字符串的排列 Java实现
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab,cba.算法分析:我们求整个字符串的排列,可以看成两步:1.求得所有可能出现在第一个位置的字符,即把第一个字符和后面的所有字符交换。2.固定第一个字符,求后面所有字符的排列。这个时候我们仍把所有字符分成两部分:后面字符的第一个字符,以及
安心写代码吧
·
2016-09-14 19:43
算法
面试题
源程序
算法导论2.3-7(未排序数组) 和
剑指offer面试题
41(排序数组)
题目要求:算法导论2.3-7:给出一个运行时间为O(nlgn)的算法,使之能在给定一个由n个整数组成的集合S和另个整数x时,判断S中是否存在有两个其和等于x的元素剑指offer:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使它们的和恰好为S。如果有多对数字的和为S,输出其中任意一对即可算法导论的解题思路:都给数组先进行归并排序,时间复杂度为O(nlgn),后续做法两题一致方法一:1、使
summer070825
·
2016-09-07 17:00
面试题
算法导论
剑指offer
剑指offer——查找一个字符串中第一次出现一次的字符(哈希直接定址法)
剑指offer面试题
:查找一个字符串中第一次出现一次的字符"test.cpp"#def
poison_biti
·
2016-08-18 13:00
剑指offer面试题
——从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。 在线编程链接见:从尾到头打印链表输入描述:输入为链表的表头输出描述:输出为需要打印的“新链表”的表头分析:这题看似比较简单,但是其实有很多思路可以解决。下面作一个简单的总结。思路1:遍历链表,采用头插法将每个元素插入到vector容器中,代码如下:vectorprintListFromTailToHead(structListNode*head
JIEJINQUANIL
·
2016-08-05 13:00
C++
算法与数据结构
剑指offer 阅读笔记 左旋转字符串
剑指offer面试题
41_2左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部,请定义一个函数实现字符串左旋转操作的功能。
Cinderella_hou
·
2016-07-06 18:56
上一页
8
9
10
11
12
13
14
15
下一页
按字母分类:
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
其他