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面试题
68 - I. 二叉搜索树的最近公共祖先(递归)(二叉搜索树)
题目描述给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树:root=[6,2,8,0,4,7,9,null,null,3,5]思路详见链接代码classTreeNode:def__init__(se
程旭员
·
2020-04-11 10:01
剑指offer
二叉搜索树的最近公共祖先
递归
二叉搜索树
剑指offer
Python
剑指offer面试题
----连续子数组的最大和
题目:输入一个整型数组,数组里有整数也有负数。数组中一二或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)思路:动态规划,分别计算第i时刻(0<=i<=n)之前子数组的最大和,如果第i-1时刻的值为负值,则将其丢弃,则当前最大和为当前数组位置的值,若不为负数,则将其加上当前位置的值。classSolution:defFindGreatestSumOfSubArray
minningl
·
2020-04-09 23:21
剑指offer面试题
09----斐波拉契数列
题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n=2时,f(x)=f(x-1)+f(x-2),因此比较容易想到使用递归,不过递归的复杂度比较高,使用动态规划能更好的节省时间,即将数列每一位的元素保存起来,后边位的数据直接调用前边的结果。Python代码如下:classSolution(object):deffib_recru(self,n):'''递归方法,思
minningl
·
2020-04-06 09:37
剑指offer面试题
16----反转链表
题目:输入一个链表,反转链表后,输出链表的所有元素。思路1:用列表保存链表中的所有元素,然后将其进行反转,新建链表后挨个将反转后的列表元素放入进去思路2:为了反转一个链表,需要调整链表中指针的方向。为了调整结点i的下一个指针,除了需要知道结点i本身之外,还需要i之前的一个结点h,因为我们需要把结点i的下一个指针指向前结点h。同时我们还需要实现保存i的一个结点j,以防止链表断开。因此相应的,我们需要
minningl
·
2020-03-29 08:07
剑指Offer面试题
29 顺时针打印矩阵
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4X4矩阵:12345678910111213141516则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.classSolution{public:vectorprintMatrix(vector>matrix){intmRow=matrix.size();//行v
Y_9d67
·
2020-03-26 15:20
剑指Offer面试题
汇总
剑指Offer简介《剑指Offer:名企面试官精讲典型编程题》剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点。全书分为7章,主要包括面试的流程,讨论面试流程中每一环节需要注意的问题;面试需要的基础知识,从编程语言、数据结构及算法三方面总结了程序员面试的知识点;高质量的代码,讨论影响代码质量的3个要素(规范性、完整性和鲁棒性),
bbbpppwagg
·
2020-03-24 07:32
数据结构算法(六) 之 树的 2 道面试题 25 & 27
剑指Offer面试题
25(Java版):二叉树中和为某一值的路径题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。
innovatorCL
·
2020-03-14 00:46
数据结构算法(八) 之 树的 2 道面试题 60 & 61
剑指Offer面试题
60(Java版):把二叉树打印成多行题目:从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层打印一行。思路:用一个队列来保存将要打印的结点。
innovatorCL
·
2020-03-12 19:42
剑指Offer面试题
5 替换空格
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为WeAreHappy.则经过替换之后的字符串为We%20Are%20Happy。//先计算数组大小,从后往前赋值publicclassSolution{publicStringreplaceSpace(StringBufferstr){intstrLen=str.length();if(strLen==0)retur
Y_9d67
·
2020-03-12 06:07
剑指offer面试题
68 - I 二叉搜索树的最近公共祖先
题目描述:给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。解题思路:利用二叉搜索树的特性:若任一节点的左子树非空,则左子树中的所有节点值都小于根节点的值;若任一节点的右子树非空,则右子树中所有节点值都大于根节点的值。因此从二叉搜索树的根节点开始遍历,将根节点值和开始输入的两个节点值比较,1、如果当前节点值在开始输入的两个节点值之间,则当前节点为最近的公共祖先;2、如果当前节点值大于开始输
weich37
·
2020-03-07 20:17
剑指offer
二叉搜索树
数据结构
二叉树
算法
剑指offer面试题
05----从头到尾打印链表
题目:输入一个链表,从尾到头打印链表每个节点的值。若列表为空,输出[]。思考:面试中链表相关的题目有很多,这个属于相对简单一点的,首先需要定义一下链表节点的类,然后来构建链表。我们知道从头到尾打印链表的值是很简单的,直接按照顺序打印就可以了。但是对于单向链表,如果想要反向打印的话也不能把指针往回走,所以就按顺序把链表的元素依次保存到一个列表中,在最后反向输出列表的元素就可以了。Python代码如下
minningl
·
2020-03-05 07:19
剑指offer面试题
06----重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:对于这个题,必须先知道二叉树的前序遍历和中序遍历的特性。前序遍历是“根左右”,中序遍历是“左根右”,因此可以通过根的位置来划分左右两边的结点。此外,在划
minningl
·
2020-03-02 01:10
剑指offer面试题
03----二维数组中的查找 (面试题04. 二维数组中的查找)
剑指offer题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如: 下面的二维数组,每行每列都是递增排序,如果在这个数组中查找target数字7,则返回true;如果查找数字5,则返回false易入误区: 在看到这个题时,第一反应这是一个有序数组,是不是可以用有
北木.
·
2020-02-24 15:58
多味的LeetCode
LeetCode
二维数组中
数据结构算法(五) 之 树的 2 道面试题 23 & 24
剑指Offer面试题
23(Java版):从上往下打印二叉树题目:从上往下打印二叉树的每个结点,同一层的结点按照从左到右的顺序打印。例如输入下图的二叉树,则一次打印出8,6,10,5,7,9,11。
innovatorCL
·
2020-02-22 02:07
剑指Offer面试题
3 :数组中重复的数字
题目在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。Input:{2,3,1,0,2,5}Output:2思路:题目中的关键信息:由于这个数组的长度为n,而且里面所有的数字都在0到n-1的范围内。只要求找出数组中任意一个重复的数字。解法我们有三种解法可以选择:给数组进行排序,最好的
久仰96
·
2020-02-20 16:34
C++实现两个有序数组的合并
本文实例为大家分享了C++实现两个有序数组合并的具体代码,供大家参考,具体内容如下
剑指offer面试题
5延展题:问题:有两个排序的数组A1和A2,内存在A1的末尾有足够多的空间容纳A2。
sigma2beta
·
2020-02-07 07:50
剑指offer面试题
33:二叉搜索树的后序遍历序列
题目:输入一个数组,判断该数组是不是某搜索二叉树的后序遍历结果。解析:该题思路为后序遍历最后一个元素为根元素,搜索二叉树的树根节点比左子树大,比右子树小,所以前N个数字比最后一个节点小,后面的数字比最后一个数字大,如果不符合改规则满足题目条件。publicclassVerifySequence{publicbooleanVerifySequenceOfBST(int[]sequence,intle
灰化肥发黑会挥发
·
2020-02-06 07:04
剑指offer面试题
03----二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如:下面的二维数组,每行每列都是递增排序,如果在这个数组中查找target数字7,则返回true;如果查找数字5,则返回false128924912471013681115思考1:易入误区在看到这个题时,第一反应这是一个有序数
minningl
·
2020-01-02 13:58
剑指offer面试题
18----树的子结构
题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路:我们知道树是有根节点和左右子树组成的,所以如果B是A的子树,就代表着B的根节点是A中的一个节点,且B的左右子树分别是A中对应节点的子树。因此我们需要对A树进行遍历,遍历出B的根节点,然后判断这个节点下B的左右子树是否匹配。综上,我们需要两步进行,1、对A进行遍历2、对遍历的节点左右子树进行匹配,判
minningl
·
2019-12-30 04:00
剑指offer面试题
21----包含min函数的栈
题目:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。思路:题目要求能够以O(1)时间获取栈的最小元素,那就需要新建栈的时候创建一个列表用来存储栈的最小元素,因此在初始化栈的时候需要同时初始化一个最小值列表。Python代码如下:#-*-coding:utf-8-*-classSolution:def__init__(self):self.st
minningl
·
2019-12-29 21:04
剑指offer面试题
23----从上往下打印二叉树
题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路:从上到下打印二叉树,其实就是对二叉树进行层次遍历。遍历的时候可以借助一个队列进行存储,首先在队列中存入二叉树的头节点,然后如果头节点有左右子节点,则依次往队列中插入左右节点,再将队列的第一个元素打印并pop出去,循环上述操作直至队列为空。借助队列的方法巧妙的利用了队列的先进先出的特性,并且按照二叉树的遍历顺序从上到下,从左到右的顺序
minningl
·
2019-12-25 04:31
牛客
剑指Offer面试题
33:二叉搜索树的后序遍历序列
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路二叉搜索树(二叉排序树/二叉查找树)定义:若它的左(右)子树不空,则左(右)子树上所有节点的值均小于(大于)它的根节点的值.意义:构建一棵二叉搜索树的目的不是为了排序,而是为了提高查找和删除关键字的速度.理论思路:后序遍历序列的最后一个数字为根节点值
kgbkqLjm
·
2019-12-24 18:47
Data_Structure
and
Algorithm
剑指offer面试题
20----顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4X4矩阵:12345678910111213141516则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路:如果按照判断条件来确认当前处于上下左右哪个边进行打印也不是不能解决,但是判断逻辑比较麻烦。这里采用一种简单的拆魔方的方法:1、打印矩阵的第一行,并将矩阵的第
minningl
·
2019-12-22 02:13
剑指offer面试题
17----合并两个排序的链表
题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。比如:输入[1,3,5],[2,4,6],输出[1,2,3,4,5,6]思路:由于两个链表都是递增的,所以依次比较两个链表第一个元素,如果哪个链表的第一个元素较小,就将其插入结果链表中,并将该节点从原始链表中删除。依次循环上述操作直到其中一个链表为空,则将另一个链表作为结果链表的next元素Pytho
minningl
·
2019-12-21 10:21
剑指offer面试题
09-3----跳台阶(变态版)
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:青蛙跳n级台阶的跳法相当于青蛙跳青蛙跳n-1级台阶后再跳1级,或者青蛙跳n-2级台阶后再跳2级....或者青蛙跳2级后再跳n-2级,或者跳1级后再跳n-1级,或者直接跳n级。因此f(x)=f(x-1)+f(x-2)+f(x-3)+....+f(2)+f(1)+1,n>=2,当n
minningl
·
2019-12-20 06:05
剑指offer面试题
19----二叉树的镜像
题目:操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树8/610/\/57911镜像二叉树8/106/\/11975思路:二叉树的镜像就是要对左右进行颠倒,简化为两个数据的镜像的话就是对这两个数据进行交换位置,交换位置的操作就是先定义一个temp变量,然后对其中的一个进行赋值,再用temp对另一个进行赋值。回到二叉树镜像这里,就是多了一个递归操作,我们对树的子树进行
minningl
·
2019-12-18 19:33
剑指offer面试题
04----替换空格
题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为WeAreHappy.则经过替换之后的字符串为We%20Are%20Happy。Python代码如下:classSolution:defreplaceSpace(self,s):#method1returns.replace('','%20')defreplaceSpace2(self,s):#method2news=''
minningl
·
2019-12-07 07:28
剑指offer面试题
09-2----跳台阶
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:青蛙跳n级台阶的跳法相当于青蛙跳青蛙跳n-1级台阶后再跳1级,或者青蛙跳n-2级台阶后再跳2级,因此f(x)=f(x-1)+f(x-2),n>=2,当n<2时的情况易得。Python代码如下:classSolution:defjumpFloor(self,number):dp=[0,1,2]for
minningl
·
2019-12-06 17:18
剑指OFFER面试题
8:旋转数组的最小数字
旋转数组的最小数字前提摘要关键找出规律:当start指针和end指针分别指向两个相邻元素时,end指针指向的元素即为数组中最小数字,论述见书本。所以二分的目的最后还是缩小搜索范围至两个元素问题分解我把可能出现的情况分成四种。数组没有经过旋转,此时start指针刚好指向最小数字数组发生了旋转,旋转后end指针和start指针指向的刚好是相邻的两个递增元素,start指针指向元素必定大于等于end指针
ericlll
·
2019-11-08 05:25
剑指offer面试题
15----链表中倒数第K个节点
题目:输入一个链表,输出该链表中倒数第k个结点。思路:使用两个指针left,right都指向链表的头部head,然后right向后先走k-1步,接着left、right同时向后走直到right走到头,此时left就是链表倒数第k个节点Python代码如下:classlistNode(object):def__init__(self,val):self.val=valself.next=Nonecl
minningl
·
2019-11-06 23:26
剑指offer面试题
08----翻转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:首先这是一个特殊的有序数组,如果直接遍历一遍,找到最小值时间复杂度O(n),不符合要求所以思考采用二分查找的方法,分
minningl
·
2019-11-03 07:52
剑指offer刷题专栏C++
剑指offer刷题专栏C++
剑指offer面试题
3数组中重复的数字
剑指offer面试题
3数组中重复的数字2(不修改数组)
剑指offer面试题
4二维数组中的查找
剑指offer面试题
5替换空格code1code2
duter_sun先生
·
2019-09-02 01:33
剑指offer
算法面试
算法笔试
C++
算法与数据结构
剑指offer面试题
:14剪绳子
题目给你一根长度为n的绳子,请把绳子剪成m段(m和n都是整数,n>1并且m>1)每段绳子的长度记为k[0],k[1],…,k[m].请问k[0]k[1]…*k[m]可能的最大乘积是多少?例如,当绳子的长度为8时,我们把它剪成长度分别为2,3,3的三段,此时得到的最大乘积是18。分析归纳法分析---其他博客的做法题型类似于斐波那契数列思想,当前问题求解依赖于上一个子问题的解决,求长度n的最大乘积依赖
WJ_MeiMei
·
2019-08-16 18:57
work
剑指offer面试题
30(java版):包含min函数的栈
welcometomyblog
剑指offer面试题
30(java版):包含min函数的栈题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))第四次做
littlehaes
·
2019-06-12 08:33
java
剑指offer面试题
18(java版):删除链表的节点
welcometomyblog
剑指offer面试题
18(java版):删除链表的节点务必掌握题目二的进阶代码题目二的进阶代码题目二的进阶代码(递归版本)题目一描述在O(1)时间内删除链表节点.给定单向链表的头指针和一个节点指针
littlehaes
·
2019-06-11 09:25
剑指offer
剑指offer面试题
17(java版):打印从1到最大的n位数
welcometomyblog
剑指offer面试题
17(java版):打印从1到最大的n位数题目要求输入数字n,按顺序打印出从1到最大的n位十进制数.比如输入3,则打印出1,2,3,…,999思路本题最大的难点在于
littlehaes
·
2019-06-11 09:42
剑指offer
剑指offer面试题
16(java版):数值的整数次方
welcometomyblog
剑指offer面试题
16(java版):数值的整数次方题目描述给定一个double类型的浮点数base和int类型的整数exponent。
littlehaes
·
2019-06-11 09:05
剑指offer
剑指offer面试题
练习 - 重建二叉树
剑指offer面试题
练习-重建二叉树题目描述解题思路代码实现题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
NEUChords
·
2019-05-29 17:54
数据结构与算法
剑指Offer面试题
58:翻转字符串
题目一(翻转字符串):牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student.aamI”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“Iamastudent.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?解题思路:解题代码:1.两
freeygh
·
2019-05-21 20:04
菜鸟通关剑指Offer
查找算法之折半查找(二分查找)
也可以是分区有序的,如
剑指Offer面试题
11:旋转数组的最小数字。
freeygh
·
2019-04-28 10:38
经典面试算法
面试题一:实现string类
剑指Offer面试题
一: #include #include usingnamespacestd; classCMyString { public: CMyString(char*pData=nullptr
freeygh
·
2019-04-22 00:00
菜鸟通关剑指Offer
剑指offer面试题
之:打印从1到最大的n位数 (2种方法实现)
题目:输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1、2、3一直到最大的3位数999注意:该题需要考虑大数问题,n的范围没有规定,可以很大,所以不能用int或longlong类型来存储概数。我们用数组存储(int[]numbers=newint[number+1])方法一:在数组上模拟数字加法代码实现:/***CreatedbyFHYon2019/3/21.*/publi
相由心生fhy
·
2019-03-21 09:36
Java
面试&笔试
剑指offer面试题
14-剪绳子(动态规划和贪婪法)
动态规划问题的三个特点:(1)求一个问题的最优解(通常是求最值)(2)该问题能分成若干个问题的子问题(3)并且子问题之间还有重叠的更小的子问题(4)从上往下分析问题,从下往上解决问题满足上面的条件可以考虑使用动态规划。求解动态规划问题时,总是从最小问题开始解决,并将已解决的子问题的最优解存储下来,并把子问题最优解组合逐步解决大的问题。贪婪算法每一步都可做一个贪婪选择,基于该选择可以得到最优解,比如
从心开始yjh
·
2019-03-15 17:36
C++
剑指offer
剑指offer面试题
17:打印1到最大的n位数(Java 实现)
题目:输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的3位数即999。测试用例:1.功能测试:输入1、2、3...2.特殊测试:输入0、-1...方法一:找出最大的n位数,直接打印。//找出最大的n位数,直接打印publicvoidprint1ToMaxOfNDigits_1(intn){intnumber=1;inti=0;while(i++=0;i-
不止于代码
·
2019-02-28 19:24
剑指offer
剑指offer--Java实现
剑指offer面试题
汇总-Java实现《剑指offer》面试题Markdown版本,包含题目、分析及代码----Github地址文章目录
剑指offer面试题
汇总-Java实现[《剑指offer》面试题Markdown
LYZ0907
·
2019-02-25 22:03
剑指offer
剑指offer面试题
38:字符串的排列
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印由字符a,b,c所能排列出来的所有字符串:abc,acb,bac,bca,cab,cba思路:两步:首先求出所有可能出现在第一个位置的字符,即把第一个字符和后面所有的字符交换。第二步固定第一个字符,求后面所有字符的排列。这个时候我们仍把后面的所有字符分成两部分:后面字符的第一个字符,以及这个字符之后的所有字符。然后把
while_false_
·
2019-02-20 11:44
剑指offer
剑指offer面试题
剑指offer面试题
36:二叉搜索树与双向链表
题目:输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何的新的节点,只能调整树中节点指针的指向。思路:首先,我们知道:在二叉树中,每个结点都有两个指向子结点的指针。在双向链表中,每个结点也有两个指针,它们分别指向前一个结点和后一个结点。其次,由于要求转换之后的链表是排好序的,我们可以中序遍历树中的每一个结点,这是因为中序遍历算法的特点是按照从小到大的顺序遍历二叉树的每一个
while_false_
·
2019-02-19 13:10
剑指offer
剑指offer面试题
剑指offer面试题
17:打印从1到最大的n位数
题目描述:输入数字n,按顺序打印从1到最大的n位十进制数。比如输入3,则打印1、2、3一直到最大的3位数999。思路一(字符串模拟加法):考虑到数字n表示的位数超过基本数据类型,因此采用在字符串上模拟数字加法的解法,打印数字。在用字符串表示数字的时候,最直观的方法就是字符串里每个字符都是‘0’~‘9’之间的某一个字符,用来表示数字中的一位。因为数字最大是n位的,因此我们需要一个长度为n+1的字符串
tednlvn
·
2019-01-09 17:28
剑指offer
剑指offer面试题
16:数值的整数次方
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。classSolution{public:doublePower(doublebase,intexponent){}};解法一(不完整解法):未考虑指数小于等于零的情况doublepower(doublebase,intexponent){doubleans=1.0;for(int
tednlvn
·
2019-01-09 11:43
剑指offer
剑指offer面试题
5:替换空格(JAVA版已在牛客网AC)
题目请实现一个函数,把字符串中的每个空格替换成“%20”。例如,输入“Wearehappy.”,则输出“We%20are%20happy.”。思路看到这个问题,我们通常的思路是从前向后遍历字符串,每遇到一个空格将空格之后的字符向后移动两位,然后将将“%20”插进去,假设字符串长度为n,有n个空格,对于每个空格,需要移动后面的字符的时间复杂度为o(n),则对于n个空格时间复杂度为o(n*n);在前面
sword man
·
2018-12-05 17:42
数据结构和算法
上一页
7
8
9
10
11
12
13
14
下一页
按字母分类:
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
其他