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-
替换空格
题目描述替换空格请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为WeAreHappy.则经过替换之后的字符串为We%20Are%20Happy。解题思路1.首先遍历得到字符串中空格的个数。2.利用双指针从字符串的尾部开始复制和替换。代码classSolution{public:voidreplaceSpace(char*str,intlength){if(str==NUL
一只可爱的柠檬树
·
2019-03-23 21:42
23.剑指
Offer-
反转链表
题目描述输入一个链表,反转链表后,输出新链表的表头。解题思路递归publicListNodeReverseList(ListNodehead){if(head==null||head.next==null)returnhead;ListNodenext=head.next;head.next=null;ListNodenewHead=ReverseList(next);next.next=head
璀璨下的一点星辰
·
2019-03-23 17:53
剑指Offer
17.剑指
Offer-
删除链表中重复的结点
题目描述解题描述publicclassListNode{intval;ListNodenext=null;ListNode(intval){this.val=val;}}publicListNodedeleteDuplication(ListNodepHead){if(pHead==null||pHead.next==null)returnpHead;ListNodenext=pHead.next
璀璨下的一点星辰
·
2019-03-22 18:26
剑指Offer
15.剑指
Offer-
打印从 1 到最大的 n 位数
题目描述输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。解题思路由于n可能会非常大,因此不能直接用int表示数字,而是用char数组进行存储。使用回溯法得到所有的数。publicvoidprint1ToMaxOfNDigits(intn){if(n<=0)return;char[]number=newchar[n];print1ToMax
璀璨下的一点星辰
·
2019-03-20 20:36
剑指Offer
14.剑指
Offer-
数值的整数次方
题目描述给定一个double类型的浮点数base和int类型的整数exponent,求base的exponent次方。解题思路下面的讨论中x代表base,n代表exponent。因为(x*x)n/2可以通过递归求解,并且每次递归n都减小一半,因此整个算法的时间复杂度为O(logN)。publicdoublePower(doublebase,intexponent){if(exponent==0)r
璀璨下的一点星辰
·
2019-03-20 16:23
剑指Offer
剑指
Offer-
重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思想:递归思想!使用前序和中序遍历可以确认唯一的二叉树,通过前序可以得知根节点为1,然后通过中序可以得知左子树为{4,7,2},右子树为{5,3,8,6
gaoyueace
·
2019-03-20 16:40
剑指Offer
剑指
Offer-
替换空格
1.请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为WeAreHappy.则经过替换之后的字符串为We%20Are%20Happy。classSolution{public:voidreplaceSpace(charstr,intlength){intcount1=0,count2=0;for(inti=0;str[i]!=‘\0’;i++){count1++;if(st
EazyFun
·
2019-03-20 13:14
剑指
offer-
面试题:字符串的排列
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。思路:注意这个题目可能有重复的数字,比如aa的排列就是[aa],不是[aa,aa],所以在递归时需要判断。还有要在牛客oj上通过,就需要将输出排序
别说话写代码
·
2019-03-18 21:59
数据结构/算法/刷题
剑指
offer-
数组中的逆序对
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size=end)return;intmid=(end+start)>>1;mergeUp2Down(a,start,
感谢努力的自己
·
2019-03-14 19:38
算法练习
剑指
offer-
面试题18删除链表中的节点-python
#-*-coding:utf-8-*-'''description题目:删除链表中的节点1.在O(1)时间内删除链表节点''''''这里我们首先定义一个链表的类'''classlinkNode:def__init__(self,value,next=None):self.value=valueself.next=nextclassSolution:defdelete_node_in_o1_time
GrinAndBearIt
·
2019-03-07 18:31
剑指offer
剑指
offer-
面试题17-打印从1到最大的n位数-python
#-*-coding:utf-8-*-'''descrption:打印从1到最大的n位数题目:输入数字n,按顺序打印出1到最大的n位十进制数这里需要考虑n很大时用int甚至longlong都无法表示,因为python的字符串是不可变对象,这里我们采用数组的方式并用在最左边加一个空间来判断是否最大值'''classSolution:defprint_until_max_n(self,n):'''1。
GrinAndBearIt
·
2019-03-06 16:05
剑指offer
剑指
offer-
面试题16:数值的整数次方-python
#-*-coding:utf-8-*-'''一个优秀的代码需要考虑代码的可读性、完整性以及错误处理的方法还有其复杂度description:面试题16:数值的整数次方实现函数power(base,exponent)其中base是double型变量、exponent是整型变量''''''代码主要分成三步走,可读性、完整性以及复杂度'''classSolution:defpower(self,base
GrinAndBearIt
·
2019-03-06 16:00
剑指offer
1.剑指
Offer-
数组中重复的数字
题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。Input:{2,3,1,0,2,5}Output:2解题思路:要求是时间复杂度O(N),空间复杂度O(1)。因此不能使用排序的方法,也不能使用额外的标记数组。对于这种数组元素在[0,n-1]范围内的问题,可以将值为i的元素
璀璨下的一点星辰
·
2019-03-04 10:57
剑指Offer
剑指
offer-
二叉排序树ed后续遍历序列
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路这道题首先要找到二叉排序树后序遍历(遍历顺序为左右根)的特点:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。所以由此可以想到后序遍历序列中
感谢努力的自己
·
2019-02-26 17:29
算法练习
剑指
offer-
面试题7-重建二叉树-python
一、题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树二、代码实现1.思路(1)首先可知前序遍历的顺序是根(跟节点)-左子树-右子树的顺序,那么列表中的第一个数即为根结点;(2)中序遍历的顺序是左-根-右的顺序,即可根据前序遍历的列表中根结点(第一个元素)的位置在中序遍历的列表中的位置来确定左右子树;可以通过递归的思路来重建二叉树2.代码#-*-coding:utf-8-*-'''bi
亦万
·
2019-02-26 16:14
剑指offer
剑指offer
python
数据结构与算法
剑指
offer-
整数中1出现的次数27
题目描述求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1到n中1出现的次数)。1classSolution:2defNumberOf1Between1AndN_S
Cool小子
·
2019-02-23 21:00
剑指
offer-
不修改数组找出重复的数字-python
一、前言由于文中给出的代码都是c++的版本,这里给出python的版本,题目内容为:在一个长度为n+1的数组里的所有数字都在1~n的范围内,所以数组中至少有一个数字是重复的。二、解题思路1.这里可以通过一种O(n)额外空间的方法利用传统的类如先复制一个列表,先排序再查找的办法,也可以通过set的办法找出重复的元素2.这里我们用一种二分查找的思想:把1~n的数字从中间的数字m分为两部分,如果前一部分
GrinAndBearIt
·
2019-02-23 10:04
剑指offer
牛客网剑指offer java 全部题解
每天一道剑指
offer-
二维数组中的查找https://mp.weixin.qq.com/s?
程序员乔戈里
·
2019-02-22 23:00
剑指
offer-
字符串的排列26
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。classSolution:def__init__(self):self.res=[]defPermutionCore(self,ss,b
Cool小子
·
2019-02-22 11:00
剑指
offer-
二叉树搜索树与双向链表25
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。classSolution:defConvert(self,pRootOfTree):#writecodeherehead=Nonepre=Nones=[]whilepRootOfTreeorlen(s)isnot0:whilepRootOfTree:s.append(pRoo
Cool小子
·
2019-02-22 10:00
每天一道剑指
offer-
二叉树的下一个结点1
题目每天一道剑指
offer-
二叉树的下一个结点https://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a?
程序员乔戈里
·
2019-02-21 23:00
每天一道剑指
offer-
二叉树的下一个结点
题目每天一道剑指
offer-
二叉树的下一个结点https://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a?
程序员乔戈里
·
2019-02-21 23:00
剑指
offer-
二叉树中和为某一值的路径24
题目描述输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意:在返回值的list中,数组长度大的数组靠前)importcopyclassSolution:#返回二维列表,内部每个列表表示找到的路径def__init__(self):self.listAll=[]self.list=[]defFin
Cool小子
·
2019-02-21 21:00
剑指
offer-
二叉搜索树的后序遍历序列23
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。classSolution:defVerifySquenceOfBST(self,sequence):#writecodehererightquence=[]leftquence=[]length=len(sequence)iflength==0:ret
Cool小子
·
2019-02-21 21:00
剑指
offer-
从上往下打印二叉树22
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。classSolution:#返回从上到下每个节点值列表,例:[1,2,3]defPrintFromTopToBottom(self,root):#writecodeherequeen=[]res=[]ifrootisnotNone:queen.append(root)whilelen(queen)isnot0:temp=queen.p
Cool小子
·
2019-02-21 21:00
剑指
offer-
栈的压入弹出序列21
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)classSolution:defIsPopOrder(self,pushV,popV):
Cool小子
·
2019-02-21 21:00
剑指
offer-
包含min函数的栈20
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。classSolution:def__init__(self):self.stack=[]self.minj=0defpush(self,node):#writecodehereself.stack.append(node)iflen(self.stack)==0:self.minj=no
Cool小子
·
2019-02-21 21:00
剑指
offer-
二叉树的镜像
剑指
offer-
二叉树的镜像题目描述操作给定的二叉树,将其变换为源二叉树的镜像。
感谢努力的自己
·
2019-02-17 15:27
算法
剑指offer
算法练习
剑指
offer-
二叉树的镜像
剑指
offer-
二叉树的镜像题目描述操作给定的二叉树,将其变换为源二叉树的镜像。
感谢努力的自己
·
2019-02-17 15:27
算法
剑指offer
算法练习
剑指
offer-
删除链表中重复的结点
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5处理后为1->2->5publicListNode deleteDuplication(ListNode pHead){}解析此题处理起来棘手的有两个地方:如果某个结点的后继结点与其重复,那么删除该结点的一串连续重复的结点之后如何删除该结点本身,这
wangfy_
·
2019-02-11 16:51
剑指offer
剑指
offer-
算法和数据操作——递归与循环
春招刷题笔记-剑指
offer-
算法和数据操作算法和数据操作——递归与循环递归与循环1.斐波那契数列2.跳台阶问题3.变态跳台阶4.矩形覆盖算法和数据操作——递归与循环递归与循环1.斐波那契数列题目描述大家都知道斐波那契数列
GorMing
·
2019-02-10 11:08
春招刷题笔记
Atitit
算法之道
attilax著 1. 编码算法 3 1.1. Base64 htmlencode urlencode 3 1.2. 汉字编码算法 转码算法 3 2. Ui方面的算法
Atitit
算法之道
attilax著1.编码算法31.1.Base64htmlencodeurlencode31.2.汉字编码算法转码算法32.Ui方面的算法32.1.软键盘算法计算软键盘上下左右按键位置
attilax
·
2018-12-31 20:18
动态规划经典题目总结
1.什么是动态规划【1】牛客网在线编程专题《剑指
offer-
面试题9》斐波那契数列【2】动态规划学习-【
Microstrong0305
·
2018-12-27 11:30
算法
剑指
offer-
用两个栈实现队列
Description:用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。Notes:时间限制:1秒空间限制:32768K解题思路:对于栈来说是先进后出的,而队列则是先进先出(对头出,对尾进);因此,对于队列的push操作,我们直接将元素存储在第一个栈的顶部;而对于pop操作,我们需要利用两个栈来实现;首先,将第一个栈的所有元素依次存入第二个栈,此时,第二个栈的栈顶
BeHelium
·
2018-12-19 13:07
The
Sword
Refers
to
Offer
每天一道剑指
offer-
二叉搜索树与双向链表
前言今天的题目昨天的题解题目每天一道剑指
offer-
二叉搜索树与双向链表题目详述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
程序员乔戈里
·
2018-12-17 07:00
每天一道剑指
offer-
二叉搜索树的后序遍历序列
昨天的题解题目每天一道剑指
offer-
二叉搜索树的后序遍历序列来源:https://www.nowcoder.com/practice/a861533d45854474ac791d90e447bafd?
程序员乔戈里
·
2018-12-15 23:31
牛客网在线编程专题《剑指
offer-
面试题9:相关题目》矩形覆盖
题目链接:https://www.nowcoder.com/practice/72a5a919508a4251859fb2cfb987a0e6?tpId=13&tqId=11163&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述:解题思路:2*n的大矩形,和n个2*1的小矩形其
Microstrong0305
·
2018-11-15 16:19
剑指offer
动态规划
矩形覆盖
算法
剑指offer
【LeetCode】53. Maximum Subarray
我的相关文章:【1】牛客网在线编程专题《剑指
offer-
面试题31》连续子数组的最大和53.MaximumSubarrayDescription:Givenanintegerarraynums,findthecontiguoussubarray
Microstrong0305
·
2018-11-01 16:36
LeetCode
算法
数组
算法
LeetCode
牛客网在线编程专题《剑指
offer-
面试题9》斐波那契数列
我的个人微信公众号:Microstrong微信公众号ID:MicrostrongAI微信公众号介绍:Microstrong(小强)同学主要研究机器学习、深度学习、计算机视觉、智能对话系统相关内容,分享在学习过程中的读书笔记!期待您的关注,欢迎一起学习交流进步!知乎主页:https://www.zhihu.com/people/MicrostrongAI/activitiesGithub:https
Microstrong0305
·
2018-10-29 14:57
算法
剑指offer
牛客网在线编程专题《剑指
offer-
面试题31》连续子数组的最大和
题目链接:https://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484?tpId=13&tqId=11183&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述:题目:输入一个整型数组,数组里面有正数也有负数。
Microstrong0305
·
2018-10-11 11:17
算法
剑指offer
剑指
Offer-
翻转单词顺序列
题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student.aamI”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“Iamastudent.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?思路用栈,单词依次进栈出栈实现翻转代码实
武培轩
·
2018-09-28 22:00
牛客网在线编程专题《剑指
offer-
面试题9:题目二》跳台阶
题目连接:https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4?tpId=13&tqId=11161&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目:解题思路:1.问题分析设f(n)表示青蛙跳上n级台阶
Microstrong0305
·
2018-09-11 22:27
算法
剑指offer
剑指
offer-
奇偶稳定排序
剑指
offer-
奇偶稳定排序输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
曹真
·
2018-09-11 01:58
【剑指offer】面试题10:斐波那契数列【C++版本】
【剑指
offer-
第二版】部分题目与解答【C++版本】题目:斐波那契数列求斐波那契数列的第n项。
DigitalNexus
·
2018-09-08 22:35
后台
C++
剑指offer
【剑指offer】面试题9:用两个栈实现队列【C++版本】
【剑指
offer-
第二版】部分题目与解答【C++版本】题目:用两个栈实现队列用两个栈实现一个队列。
DigitalNexus
·
2018-09-08 21:36
后台
C++
剑指offer
【剑指offer】面试题8:二叉树的下一个节点【C++版本】
【剑指
offer-
第二版】部分题目与解答【C++版本】题目:二叉树的下一个节点给定一颗二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?
DigitalNexus
·
2018-09-08 21:06
后台
C++
剑指offer
【剑指offer】面试题7:重建二叉树【C++版本】
【剑指
offer-
第二版】部分题目与解答【C++版本】题目:重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树(假设没有重复数字)。
DigitalNexus
·
2018-09-08 17:15
后台
C++
剑指offer
【剑指offer】面试题6:从尾到头打印链表【C++版本】
【剑指
offer-
第二版】部分题目与解答【C++版本】题目:从尾到头打印链表输入一个链表的头节点,从尾到头反过来打印出每个节点的值。
DigitalNexus
·
2018-09-08 16:50
后台
C++
剑指offer
【剑指offer】面试题5:替换空格【C++版本】
【剑指
offer-
第二版】部分题目与解答【C++版本】题目:替换空格请实现一个函数,把字符串中的每个空格替换成“%20”,例如,输入”Wearehappy.”,则输出”We%20are%20happy.
DigitalNexus
·
2018-09-07 19:44
后台
C++
剑指offer
【剑指offer】面试题3:数组中重复的数字【C++版本】
【剑指
offer-
第二版】部分题目与解答【C++版本】题目一:找出数组中重复的数字在一个长度为n的数组里的所有数字都在0~n-1范围内。
DigitalNexus
·
2018-09-07 12:50
后台
C++
剑指offer
上一页
14
15
16
17
18
19
20
21
下一页
按字母分类:
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
其他