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面试题
汇总(高质量的代码)
@TOC输入参数的检查、处理错误和异常方式、命名方式功能测试、边界测试、负面测试面试题16:数值的整数次方实现函数:doublePower(doublebase,intexponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。我的想法就是一直循环相乘==切记要考虑exponent小于1的情况啊!那exponent=负数base为0呢?boolg_InvalidI
我的喵喵找不到了
·
2020-06-25 04:39
leetcode
算法
剑指Offer(第二版)面试题4:二维数组中的查找
/**
剑指Offer面试题
4:二维数组中的查找*题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每
温柔狠角色
·
2020-06-25 02:50
剑指Offer
笔试题
面试题
剑指offer面试题
(5)——替换空格
题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“Wearehappy.”,则输出“We%20are%20happy.”。解题思路最直观的的做法是从头到尾扫描字符串,每次碰到空格字符的时候进行替换。由于把1个字符换成3个字符,所以必须把空格后面的字符都后移两个单位。例如字符串“Wearehappy.”,移动过程可由如下示意图表示:上述解题步骤实现主要代码如下:#include#
minghui_
·
2020-06-24 14:15
剑指offer
LeetCode之
剑指Offer面试题
31. 栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列{1,2,3,4,5}是某栈的压栈序列,序列{4,5,3,2,1}是该压栈序列对应的一个弹出序列,但{4,3,5,1,2}就不可能是该压栈序列的弹出序列。示例1:输入:pushed=[1,2,3,4,5],popped=[4,5,3,2,1]输出:true解释:我们可以按以下
Java学习之旅
·
2020-06-24 12:28
LeetCode
算法
算法
java
栈
leetcode
剑指Offer面试题
16反转链表(递归和非递归),面试题17合并两个排序的链表(递归)
面试题16:反转链表(递归和非递归)输入一个链表的头结点,反转该链表并输出反转后链表的头结点。思路1:定义三个指针,分别是当前要反转的结点,它的前一个结点和后一个结点。思路2:用递归。先找到倒数后两个结点反转,依次向前。以下是本题Java实现:classListNode{intvalue;ListNodenext;publicListNode(intx){value=x;}}publicclass
login_sonata
·
2020-06-24 08:58
《剑指Offer》Java版
《剑指Offer》Java版
剑指offer 面试题38 数字在排序数组中出现的次数
剑指offer面试题
38数字在排序数组中出现的次数统计一个数字在排序数组中出现的次数。例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4。
LYZ0907
·
2020-06-24 07:40
剑指offer
剑指offer
剑指offer面试题
汇总-Java实现
剑指offer面试题
汇总-Java实现说明:参考DERRANTCM的剑指offer学习专栏的排版。DERRANTCM是我的学习榜样,他的博客给予我极大的帮助。感谢你!让我们一起分享知识,创造快乐!
LYZ0907
·
2020-06-24 07:39
剑指offer
剑指offer
剑指offer面试题
40(java版):最小的K个数
welcometomyblog
剑指offer面试题
40(java版):最小的K个数题目描述输入n个整数,找出其中最小的K个数。
littlehaes
·
2020-06-24 06:17
剑指offer
剑指offer
剑指offer面试题
55(java版):二叉树的深度
welcometomyblog
剑指offer面试题
55(java版):二叉树的深度题目一描述输入一棵二叉树,求该树的深度。
littlehaes
·
2020-06-24 06:17
剑指offer
剑指offer
剑指offer面试题
39(java版):数组中出现次数超过一半的数字
welcometomyblog
剑指offer面试题
39(java版):数组中出现次数超过一半的数字题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
littlehaes
·
2020-06-24 06:46
剑指offer
剑指offer
剑指offer面试题
35(java版):复杂链表的复制
welcometomyblog
剑指offer面试题
35(java版):复杂链表的复制笔记这道题卡了很久,因为最后拆分链表的时候,我只提取了复制后的链表,没有管原先的链表,结果就判错了是不是判题的机制有问题
littlehaes
·
2020-06-24 06:46
剑指offer
剑指offer
剑指offer面试题
52(java版):两个链表的第一个公共节点
welcometomyblog
剑指offer面试题
52(java版):两个链表的第一个公共节点题目描述输入两个链表,找出它们的第一个公共结点思路两个节点相等,是指针指向的引用相等,不仅仅是节点的值相等比较容易想到的是从后往前比
littlehaes
·
2020-06-24 06:46
剑指offer
剑指offer
剑指offer面试题
54(java版):二叉搜索树的第K小节点
welcometomyblog
剑指offer面试题
54(java版):二叉搜索树的第K小节点题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。
littlehaes
·
2020-06-24 06:46
剑指offer
剑指offer
剑指offer面试题
36(java版):二叉树与双向链表
welcometomyblog
剑指offer面试题
36(java版):二叉树与双向链表题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。
littlehaes
·
2020-06-24 06:46
剑指offer
剑指offer
剑指offer面试题
41(java版):数据流中的中位数
welcometomyblog
剑指offer面试题
41(java版):数据流中的中位数题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。
littlehaes
·
2020-06-24 06:46
剑指offer
剑指offer
剑指offer面试题
28(java版):对称的二叉树
welcometomyblog
剑指offer面试题
28(java版):对称的二叉树题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
littlehaes
·
2020-06-24 06:46
剑指offer
剑指offer
剑指Offer面试题
5:替换空格程序调试与错误解决方法
1.问题描述面试题5:替换空格题目:请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“Wearehappy.”,则输出“We%20are%20happy.”。2.程序代码:/*******************************************************************Copyright(c)2016,HarryHeAllrightsreserv
linyuhan3232
·
2020-06-24 05:36
计算机
编程
剑指Offer面试题
23(Java版):从上往下打印二叉树
题目:从上往下打印二叉树的每个结点,同一层的结点按照从左到右的顺序打印。例如输入下图的二叉树,则一次打印出8,6,10,5,7,9,11.这道题实质上考察的就是树的遍历算法,只是这种遍历不是我们熟悉的前序、中序或者后序遍历。由于我们不太熟悉这种按层遍历的方法,可能已下载也想不清楚遍历的过程。因为按层打印的顺序决定应该先打印的根节点,所以我们从树的根节点开始分析。为了接下来能够打印8的结点的两个子节
互联网极客
·
2020-06-23 23:14
剑指offer(Java版)
剑指Offer面试题
39(Java版):二叉树的深度
题目:输入一棵二叉树的根节点,求该数的深度。从根节点到叶结点依次进过的结点(含根,叶结点)形成树的一条路径,最长路径的长度为树的深度。例如,如下图的二叉树的深度为4,因为它从根节点到叶结点的最长的路径包含4个结点(从根结点1开始,经过2和结点5,最终到达叶结点7)我们可以从另一种角度来理解树的深度。如果一棵树只有一个结点,它的深度为1,如果根节点只有左子树而没有右子树,那么树的深度应该是其左子树的
互联网极客
·
2020-06-23 23:14
剑指offer(Java版)
剑指Offer面试题
8(java版):旋转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为旋转。输入一个递增的排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小元素为1.这道题最直观的解法并不难,从头到尾遍历一次,我们就能找到最小的元素。这种思路的时间复杂度为O(n)。但是这个思路没有利用输入的旋转数组的特性,肯定达不到面试官的要求。我们注意到旋转之后的
互联网极客
·
2020-06-23 23:13
剑指offer(Java版)
剑指Offer面试题
38(Java版):数字在排序数组中出现的次数
题目:统计一个数字在排序数组中出现的次数。例如输入排序数组为{1,2,3,3,,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4既然输入的数组是排序的,那么我们很自然的想到利用二分查找算法。在题目给出的例子中,我们可以先用二分查找算法找到第一个3.由于3可能出现多次,因此我们找到的3的左右两遍可能都是3,于是我们在找到3的左右两边顺序扫描,分别找出第一个3和最后一个3.因为要查找
互联网极客
·
2020-06-23 23:42
剑指offer(Java版)
剑指offer面试题
52. 两个链表的第一个公共节点
输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点c1开始相交。示例1:输入:intersectVal=8,listA=[4,1,8,4,5],listB=[5,0,1,8,4,5],skipA=2,skipB=3输出:Referenceofthenodewithvalue=8输入解释:相交节点的值为8(注意,如果两个列表相交则不能为0)。从各自的表头开始算起,链表A为[4,1,8,
心之所向丶7
·
2020-06-23 20:26
刷题
python
剑指offer面试题
26:复杂链表的复制Java实现
题目描述:一个复杂链表,在复杂链表中,每个结点除了有一个next指针指向下一个结点外,还有一个sbiling指向链表中的任意结点或者null。下图是一个复杂链表的示例,Null的指针没有画出。解题思路:1.很直观的解法就是分成两步:1).原始链表上的每一个结点,并用next指针连起来。2).sbiling指针。但是sbiling指针时需要比较高的复杂度。以上图为例,如果我们要B对应B’的的sbil
风云叶易
·
2020-06-23 20:07
数据结构链表
面试
剑指offer面试题
五:替换空格
题目描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为WeAreHappy.则经过替换之后的字符串为We%20Are%20Happy题目源于网络编程中url参数中含有特殊字符的处理,有直接接口可以调用的,这里考察字符串处理知识;思路一:如果可以申请新的内存空间,那么直接遍历即可时间复杂度为O(n),空间复杂度为O(n);(考察点不是这,这开辟了新的内存,past)思路
tednlvn
·
2020-06-23 17:34
剑指offer
剑指offer面试题
28. 对称的二叉树
题目https://leetcode-cn.com/problems/dui-cheng-de-er-cha-shu-lcof/方案方法1、使用dfs递归遍历publicbooleanisSymmetric(TreeNoderoot){if(root==null){returntrue;}returnhelper(root.left,root.right);}privatebooleanhelpe
孤独机器
·
2020-06-23 12:35
数据结构和算法
剑指offer面试题
07. 重建二叉树
题目地址https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof/submissions/思路构建的思路就是先知道根是谁,然后先构建左边,再构建右边先把中序每个节点都放到map中这样可以方便的知道每个节点的下标把中序遍历结果放到数组中是因为从前序遍历结果第一个就能知道根节点,中序遍历中根节点的左边就是二叉树左边的节点,右边的数据就是二叉
孤独机器
·
2020-06-23 12:35
数据结构和算法
剑指offer面试题
24. 反转链表
题目https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/submissions/思路方法1、开辟一个o(n)数组,把链表的节点都放进去,然后逆序输出新的链表方法2、使用中间变量就像交换俩个数一样方法3、使用递归实现。(难懂哦)/*方法一使用中间变量类似交换俩个变量的值一样时间复杂度是o(n)空间复杂度是o(1)*/publicList
孤独机器
·
2020-06-23 12:35
数据结构和算法
剑指Offer面试题
29:数组中出现次数超过一半的数字 Java实现
题目:数组中出现次数超过一半的数字。数组中有一个数字出现次数超过数组长度的一半,请找出这个数字,例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2},由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。算法分析:算法1.基于中位函数getMiddle()的O(n)算法如果把输入的数组排序,那么排序后位于数组中间的数字一定就是那个出现次数超过数组长度一半的数字。也就是说,这个数
安心写代码吧
·
2020-06-23 10:56
算法
面试题
源程序
剑指Offer面试题
5:从尾到头打印链表
题目:从尾到头打印链表输入一个链表的头节点,从尾到头反过来打印输出每个节点的值。算法分析:看到这道题,很多人的第一反应是从头到尾输出将会比较简单,于是我们很自然的想到把链表中的节点的指针反转过来,改变链表的方向,然后就可以从头到尾输出了。但该方法改变原来链表的结构。是否允许在打印链表的时候修改链表的结构?这个取决于面试官的要求,因此在面试的时候我们要询问清楚面试官的要求。通常打印是一个只读操作,我
安心写代码吧
·
2020-06-23 10:56
剑指Offer
剑指Offer面试题
59:队列的最大值(滑动窗口的最大值)
题目一给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{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],2,5,1},{2
freeygh
·
2020-06-23 08:33
菜鸟通关剑指Offer
剑指offer---复杂链表复制
剑指offer面试题
---复杂链表复制分析此题:1.首先要将链表的每一个节点复制一份,连在被复制节点后面。2.将对应的指向关系也对应复制。3.分离原链表、复制链表。
一米阳光 zs
·
2020-06-23 07:12
数据结构
剑指offer
剑指Offer/滴滴2018校招笔试题-找出数组中第K大元素-双路快排实现
编程题实例滴滴2018校招笔试题编程题2:找出数组中第K大的元素输入45,66,58,222输出45编程原理这道题与
剑指Offer面试题
29:数组中出现次数超过一半的数字;
剑指Offer面试题
30:数组中最小的
贺爷
·
2020-06-23 06:41
算法
剑指offer 面试题
#第一道:/*
剑指offer面试题
14:调整数组使奇数全部都位于偶数前面。题目:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前
John__xs
·
2020-06-22 18:07
C/C++
剑指offer面试题
22. 链表中倒数第k个节点
剑指offer面试题
22.链表中倒数第k个节点题目题目输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。
一枚蛋挞
·
2020-06-22 09:20
剑指offer
剑指offer面试题
3:找出数组中重复数字
问题描述:在长度为n的数组中存储的数字的范围为0——n-1,数组中右边重复数字,但是不知道是哪些数字重复也不知道重复几次,找出数组中的重复数字。方法一思路:将数组先排序,再遍历数组依次找出重复数字方法二思路:利用哈希表(消耗额外空间)。遍历数组,查找在哈希表中是否有这个数字,没有就将数字加入哈希表中,有了就说明此数字为重复数字。方法三思路:利用数组下标和数字一对一(0号位置就用来存储数字0.会出现
RitaLoveCode
·
2020-06-22 04:25
剑指Offer面试题
思路解析
面试题58:二叉树的下一个节点给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路分析:1.如果二叉树为空,返回空2.如果二叉树的右子树不为空,那么返回右子树的最左孩子节点3.如果二叉树的右子树为空,那么寻找第一个节点是父节点左孩子的节点,返回其父节点,既是当前节点的下一个节点。publicTreeLinkNod
小萝莉_Lolita
·
2020-06-22 01:08
算法
剑指offer面试题
——从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。在线编程链接见:从尾到头打印链表输入描述:输入为链表的表头输出描述:输出为需要打印的“新链表”的表头分析:这题看似比较简单,但是其实有很多思路可以解决。下面作一个简单的总结。思路1:遍历链表,采用头插法将每个元素插入到vector容器中,代码如下:vectorprintListFromTailToHead(structListNode*head)
木顶思上
·
2020-06-21 22:04
算法与数据结构
C++知识总结
剑指offer面试题
——替换空格
题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为WeAreHappy.则经过替换之后的字符串为We%20Are%20Happy。在线编程链接见:替换空格。分析:首先容易想到的就是从前往后扫描,如果空格,就替换为%20,但是这样需要移动空格后的元素。还有一种方法,首先遍历一遍字符串,统计出空格的个数,并可以由此计算出替换之后的字符串的长度。每替换一个空格,长度增加2,因此
木顶思上
·
2020-06-21 22:03
算法与数据结构
C++知识总结
剑指offer面试题
38. 字符串的排列(回溯)
面试题38.字符串的排列难度中等48输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s="abc"输出:["abc","acb","bac","bca","cab","cba"]限制:1ans;stringtmp;vectorflag;stringstr;intN;voiddfs(intlevel){if(level==N){a
FrostMonarch
·
2020-06-21 20:49
leetcode
暴力
(剑指Offer)面试题07. 重建二叉树 & 面试题09. 用两个栈实现队列
【leetcode】
剑指Offer面试题
07.09面试题07.重建二叉树面试题09.用两个栈实现队列面试题07.重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。
Ming宸
·
2020-06-21 18:26
剑指Offer
(剑指Offer)面试题03. 数组中重复的数字&面试题04. 二维数组中的查找
【leetcode】
剑指Offer面试题
03.04面试题03.数组中重复的数字面试题04.二维数组中的查找面试题03.数组中重复的数字找出数组中重复的数字。
Ming宸
·
2020-06-21 18:26
剑指Offer
(剑指Offer)面试题10- I. 斐波那契数列 & 面试题10- II. 青蛙跳台阶问题
【leetcode】
剑指Offer面试题
10-I.10-II面试题10-I.斐波那契数列面试题10-II.青蛙跳台阶问题面试题10-I.斐波那契数列写一个函数,输入n,求斐波那契(Fibonacci)数列的第
Ming宸
·
2020-06-21 18:26
剑指Offer
剑指offer面试题
26之复杂链表的复制
1,题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。求一个复制体。2,考虑点:(1),链表为空的情况。(2),链表只有一个结点的情况以及在遍历链表的过程中考虑当前只有一个结点的情况3,方法:(1),先复制单链表,再考虑特殊指针:每找一次特殊指针,从头遍历原链表一次(因为特殊指针有可能指向当前节点的前面节点),通过比较顺序指针和特殊指针
dota爱好者
·
2020-06-21 16:59
校招常考算法
剑指offer面试题
53 - I. 在排序数组中查找数字 I(二分查找)
题目描述统计一个数字在排序数组中出现的次数。思路详见链接代码classSolution:defsearch(self,nums:[int],target:int)->int:i,j=0,len(nums)-1whilei=j:m=(i+j)//2ifnums[m]<target:i=m+1else:j=m-1left=jreturnright-left-1
程旭员
·
2020-06-21 12:02
剑指offer
剑指offer面试题
59(java版):队列的最大值
welcometomyblog
剑指offer面试题
59(java版):队列的最大值题目1描述:滑动窗口的最大值给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。
littlehaes
·
2020-06-21 03:22
剑指offer
剑指offer
剑指offer面试题
53(java版):数字在排序数组中出现的次数
welcometomyblog
剑指offer面试题
53(java版):数字在排序数组中出现的次数题目描述统计一个数字在排序数组中出现的次数。
littlehaes
·
2020-06-21 03:22
剑指offer
剑指offer
剑指offer面试题
38:数字在排序数组中出现的次数
题目描述:统计一个数字在排序数组中出现的次数。输入:每个测试案例包括两行:第一行有1个整数n,表示数组的大小。1#includeusingnamespacestd;boolflag1=true;boolflag2=true;intSearchFirst(intA[],intn,intvalue){intleft=0,right=n-1;while(leftvalue)right=mid-1;els
hackerzchao
·
2020-06-21 01:07
剑指offer
剑指Offer面试题
65:滑动窗口的最大值 Java实现
题目:给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4.4,6,6,6,5}。算法分析:如果采用蛮力法,这个问题似乎不难解决:可以扫描每一个滑动窗口的所有数字并找出其中的最大值。如果滑动窗口的大小为k,需要O(k)时间才能找出滑动窗口里的最大值。对于长度为n的输入数组,这个
安心写代码吧
·
2020-06-21 01:09
剑指Offer
面试题
算法
剑指offer面试题
68 - I. 二叉搜索树的最近公共祖先
剑指offer面试题
68-I.二叉搜索树的最近公共祖先**给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。
秋刀鱼98
·
2020-06-06 18:40
剑指offer
算法
二叉树
递归法
java
剑指offer面试题
55 - II. 平衡二叉树(后序遍历)(剪枝)
题目描述输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。思路详见链接代码classSolution:defisBalanced(self,root:TreeNode)->bool:defrecur(root):ifnotroot:returnreturn0left=recur(root.left)ifleft==-1:
程旭员
·
2020-05-23 16:45
剑指offer
平衡二叉树
后序遍历
剪枝
剑指offer
Python
上一页
6
7
8
9
10
11
12
13
下一页
按字母分类:
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
其他