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第二版
》面试题49:丑数(Ugly Number)(java)
题目描述题目描述:我们把只包含2,3,5的数称为丑数(uglynumber),求从小到大的顺序的第1500个丑数。例如6,8是丑数,但14不是,因为它包含因子7。习惯上我们把1称为第一个丑数。解题思路根据丑数的定义,丑数应该是丑数乘以2、3或者5的结果。可以创建一个数组A,数组里的数字是排好序的丑数。假设数组里最大的丑数是M,则接下的一个丑数则是之前的某个丑数乘以2、3或者5的结果。记录三个下标,
castlet
·
2024-08-29 06:29
《
剑指offer第二版
》面试题38_1:字符串的组合(java)
题目描述输入一个字符串,打印出该字符串的所有组合,例如输入字符串abc,则所有的排列为:a、b、c、ab、ac、bc、abc。解题思路:如果输入n个字符,则能构成长度为1,2,...n的组合。求n个字符中长度为m的组合的时候,可以把n个字符分为两个部分,第一部分:第一个字符,第二部分:n-1个其他的所有字符。可以选取第一个字符,再在第二部分的字符里选取m-1个字符,也可以不选取第一个字符,在第二部
castlet
·
2024-02-14 17:41
【C++题解】
剑指offer第二版
,面试必备专栏
❤️如果有收获的话,欢迎点赞收藏,您的支持就是我创作的最大动力唠叨唠叨:在这个专栏里,我会整理所有
剑指offer第二版
一共76道题的题解,共257张图。一方面我希望通过这个
Pandaconda
·
2024-02-14 11:27
#
剑指offer第二版
链表
leetcode
算法
c++
剑指offer
1024程序员节
剑指offer第二版
(PDF+源码) 百度云
链接:https://pan.baidu.com/s/1b6ZxVIBvjPfKifToh_h26Q密码:6t76https://github.com/zhedahht/ChineseCodingInterviewAppendix(代码)
人大神成长记2
·
2024-02-07 11:08
剑☞offer
《
剑指offer第二版
》面试题35:复杂链表的复制(java)
题目描述题目描述:复制一个复杂链表,在复杂链表中,每个节点除了有一个next指针指向下一个节点,还有一个sibling指针指向链表中的任意节点或者null。解题思路:原始链表为:A(C)->B(E)->C(null)->D(B)->E(null)复制原始链表节点N,创建N',并将N'链接到N的后边,链表变为:A(C)->A'(null)>B(E)->B'(null)->C(null)->C'(nu
castlet
·
2024-01-27 18:38
《
剑指offer第二版
》面试题8:二叉树的下一个节点(java)
题目描述给定一颗二叉树和其中的一个节点,如何找出中序遍历的下一个节点?树中节点除了有两个分别指向左、右子节点的指针,还有一个指向父节点的指针。解题思路:以如下二叉树为例,中序遍历为{d,b,h,e,i,a,f,c,g},给定的二叉树节点用A表示。a/\bc/\/\defg/\hi如果A有右子树,那它的下一个节点是右子树里最左节点。如果A没有没有右子树,并且A是A的父节点的左节点,那它的下一个节点就
castlet
·
2024-01-26 21:36
《
剑指offer第二版
》面试题25:合并连个排序的链表(java)
题目描述输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍是递增排序的。解题思路:因为链表都是递增排序的,可以分别比较链表当前节点的大小,较小的作为新链表的节点,再继续遍历剩下的节点。当其中一个链表遍历到最后的时候,新链表的尾节点直接指向另一个不为null的链表即可。代码Listnodemerge(Listnodehead1,Listnodehead2){if(head1==null){r
castlet
·
2023-12-30 00:00
《
剑指offer第二版
》面试题38:字符串的排列(java)
题目描述输入一个字符串,打印出该字符串的所有排列,例如输入字符串abc,则所有的排列为:abc、acb、bac、bca、cab、cba。解题思路:把字符串分为两部分,一部分是字符串的第一个字符,另一部分是字符串除了第一个字符后面的所有字符。求所有可能出现在第一个位置的字符,即把第一个字符和后面所有的字符交换。以abc为例子,字符a和后面所有的字符依次交换的结果为:a|b|c|,b|a|c|,c|b
castlet
·
2023-12-29 17:14
《
剑指offer第二版
》面试题23:链表中环的入口节点(java)
题目描述如果一个链表中包含环,如何找出环的入口?解题思路:先判断是否有环,如果没有话则没有入口:定义快慢指针slow,fast都指向头节点;遍历链表,slow一次走一步,fast一次走两步,如果slow和fast能相遇,则说明有环,记录相遇的节点为loopNode。计算环的长度:从第1步里的loopNode开始循环,再次遍历到loopNode的时候,则将环遍历了一圈,可以算出环的长度n。再次定义快
castlet
·
2023-12-28 19:08
《
剑指offer第二版
》面试题59 题目二:队列的最大值(java)
题目描述请定义一个队列实现函数max得到队列里的最大值。要求函数max、push_back和pop_front的时间复杂度都为O(1)。解题思路用双端队列maximums保存最大值。用currentIndex记录push进队列数字的index。push_back的时候,如果push的值number大于maximums的队尾元素,则删除队尾元素,直到maximums中没有比number小的值。pop
castlet
·
2023-12-01 22:40
《
剑指offer第二版
》面试题63:股票的最大利润(java)
题目描述假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?例如,一只股票在某时间节点的价格为{9,11,8,5,7,12,16,14}。如果在价格为5的时候买入,16卖出。则能收获最大的利润11。解题思路该题目即求数组的所有数的最大差值。遍历数组,假设当前遍历第i个数组,用min存储前面i-1个数字的最小值,maxDiff记录当前数字和min的最大差值。遍
castlet
·
2023-11-30 23:57
《
剑指offer第二版
》面试题56:数组中数字出现的次数(java)
题目描述一个整数数组里除两个数字外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。比如{2,3,5,3,2,7},则两个只出现一次的数字为5和7.解题思路假设数组中只出现一次的两个数字为A和B。一个数字异或自己的结果是0。依次将该数组进行异或,则得的到的结果即为为A和B异或的结果,因为其他成对出现的数字都抵消了。由于A和B不同,所以A和B
castlet
·
2023-11-22 04:58
《
剑指offer第二版
》题16:数值的整数次方
题目:实现函数doublePower(doublebase,intexponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。解题思路最直接的解法就是base乘exponent次,考虑好边界值。publicstaticdoublepower(doublebase,intexponent){if(base==0&&exponent>1);result*=result
leilifengxingmw
·
2023-10-21 07:39
《
剑指offer第二版
》面试题30:包含min函数的栈(java)
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素min的函数。在该栈中,min、push、pop的时间复杂度都是O(1)解题思路:定义两个栈,stack用于存储正常的栈元素,一个辅助栈minStack,用于保存最小值。当数据data入栈的时候,比较data和minStack栈顶元素的大小,将两者的最小值入栈minStack。minStack的栈顶元素就是栈的最小值。获取最小值的时
castlet
·
2023-10-20 15:27
《
剑指offer第二版
》面试题6:从尾到头打印链表(java)
题目描述输入一个链表的头结点,从尾到头打印出每个节点的值。解题思路一:遍历链表,将遍历到的节点以此放入栈中。从栈顶逐一输出节点,此时输出的节点顺序已经反过来了。解题思路二:使用递归。代码//使用栈voidprintListReverse(ListNoderoot){if(root==null){return;}Stackstack=newStack<>();while(root!=null){st
castlet
·
2023-10-12 15:53
递归实现单链表反转的理解
题目来源于《
剑指Offer第二版
》将一个单链表进行反转,迭代实现比较容易理解,但是递归算法有点难以理解。以下为递归实现的Java代码。
iematthew
·
2023-10-03 15:43
Java菜鸟之路
数据结构与算法
java
链表
算法
单链表
数据结构
《
剑指offer第二版
》题8:二叉树的下一个节点
题目:给定一棵二叉树和其中的一个节点,如何找出中序遍历顺序的下一个节点?树中的节点除了有两个分别指向左右子节点的指针以外,还有一个指向父节点的指针。img1.png注意:从父节点指向子节点的指针用实线表示,从子节点指向父节点的指针用虚线表示。上图的二叉树的中序遍历序列是{d,b,h,e,i,a,f,c,g}。我们以这棵树为例进行分析。解题思路:如果一个节点有右子树,那么它的下一个节点就是它的右子树
leilifengxingmw
·
2023-09-29 11:38
剑指offer第二版
刷题面试题5:替换空格(Python版本)
剑指offer第二版
刷题面试题5:替换空格(Python版本)题目描述原因分析常见思路调用re模块总结题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。
努力做个程序猿
·
2023-09-14 07:24
剑指offer面试题
Python
《
剑指offer第二版
》面试题5:替换空格(java)
题目描述请实现一个函数,把字符串中的每一个空格替换成"%20"。例如,输入"Wearehappy.",则输出"We%20are%20happy."解题思路先遍历一遍字符串A,计算出需要替换之后的字符串总长度n。新建总长度为n的char数组B。从后往前遍历A,同时从后往前填充字符串B,如果遍历A中的字符是普通字符,则直接放入B数组内,如果是空格,则向数组B中放入%20三个字符。代码Stringrep
castlet
·
2023-09-01 05:03
《
剑指offer第二版
》面试题11:旋转数组的最小数字(java)
题目描述把一个数组最开始的的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1.解题思路:数组可以分为两个递增数组A和B,则第二个递增数组B里的所有数字都小于等于第一个递增数组A里的数字。B的开头即为最小数字。采用二分查找的方式。用三个变量分别表示数组的开头
castlet
·
2023-08-27 16:46
剑指 Offer 第二版
剑指Offer第二版
文章目录
剑指Offer第二版
[剑指Offer06.从尾到头打印链表](https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035
木白CPP
·
2023-08-10 17:07
算法
剑指offer第二版
这本书在程序员届被看成是刷题必备宝典,书中更侧重与算法功能的实现,当然因为需要实际敲代码,也涉及到很多基础概念并指出常见的编程误区。针对本书还应该有针对性的复习些基础知识以及系统的在VS上操作的编程练习而不仅仅是实习某个函数的功能剑指offer链接待更新
辛勤热心人
·
2023-08-07 07:00
《
剑指offer第二版
》题15:二进制中1的个数
题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,则该函数输出2。解题思路:最简单的方式,将数字与1相与判断是不是1,然后将数字每次右移一位然后再次与1相与。注意:正整数二进制表示最高位是0,负整数二进制表示最高位是1。如果是负数的话,一直右移那么与1相与一直是1。怎么办呢?在Java中int是32位,我们只需要右移32次
leilifengxingmw
·
2023-08-02 09:04
《
剑指offer第二版
》题13:机器人的运动范围
题目:地上有个m行n列的方格。一个机器人从坐标(0,0)的格子开始移动,它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7=18。但它不能进入方格(35,38),因为3+5+3+8=19。请问该机器人能够达到多少格子?解题思路:机器人从坐标(0,0)开始移动。当它准备进入坐标为(i,j)的格
leilifengxingmw
·
2023-08-02 06:20
剑指offer第二版
(C++实现)
剑指offer2.面试需要的基础知识数据结构数组:二维数组中的查找字符串:替换空格链表:从尾到头打印链表树:重建二叉树栈和队列:用两个栈实现队列算法和数据结构查找和排序:旋转数组的最小数字递归和循环:斐波那契数列位运算:二进制中1的个数3.高质量代码数值的整数次方打印1到最大的n位数删除链表的节点调整顺序使奇数位于偶数前面链表中的倒数第K个节点反转链表合并两个有序的链表树的子结构4.解决面试题的思
一记绝尘
·
2023-04-09 19:31
算法
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。动态规划的概念如果面试题是求一个问题的最优解(通常是求最大值或者最小值),而且该问题能够分解成若干个子问题
leilifengxingmw
·
2023-04-08 14:57
《
剑指offer第二版
》题12:矩阵中的路径
题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中任意一格开始,每一步可以在矩阵中间向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。图例请参考LeetCode上的剑指Offer12.矩阵中的路径publicclassTest12{publicstaticvoidmain(String[]args){char[]
leilifengxingmw
·
2023-03-21 05:32
《
剑指offer第二版
》题10:斐波那契数列
fibonacci.png解法一:递归publicstaticlongfibonacciRecursively(longnumber){if((number==0)||(number==1))returnnumber;elsereturnfibonacciRecursively(number-1)+fibonacciRecursively(number-2);}使用递归方法会存在很多重复的计算。比
leilifengxingmw
·
2023-02-19 07:14
剑指offer第二版
算法题解题思路总结
主要使用c++。写代码时易错点-要考虑到特殊输入并做相应处理,如空指针,空数组等。题11旋转排序数组的最小数字二分查找。大体思路是维护两个指针,分别指向第一个和最后一个元素。然后找到数组中间的元素,如果这个值大于等于第一个指针指向的元素,那么该中间元素就位于数组中前面递增的部分,这样就把前面的指针指向该中间元素。如果这个中间值小于等于后面指针指向的元素,那么该中间值就位于数组中后面递增的部分,这样
VKE
·
2023-02-05 15:01
《
剑指offer第二版
》题11:旋转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。最直接的解法:从头到尾遍历数组查找。时间复杂度O(n)。但是这种思路没有利用旋转数组的特性。publicintminArray(int[]numbers){if(numbers==nul
leilifengxingmw
·
2023-02-05 13:56
(3)关于C++中的哈希表的一些用法记录
无序地图(无序式关联容器)unordered_map()前言:在刷力扣
剑指offer第二版
50题的时候,对unordered_map的底层数据结构产生了疑问。
徽州SLAM李
·
2022-11-28 04:37
笔记
c++
散列表
哈希算法
剑指offer最新版_剑指Offer——Java版本(持续更新)
参考整理来自《
剑指Offer第二版
》。特别注意,对每道题要首先考虑解题之外的要点:特殊输入:传参为null,数组长度为0,空字符串等。边界条件:数组、字符串长度是否满足题目要求等。
weixin_39738152
·
2022-09-14 15:35
剑指offer最新版
剑指offer第二版
-2.实现单例模式
本系列导航:剑指offer(第二版)java实现导航帖面试题2:实现单例模式题目要求:设计一个类,只能生成该类的一个实例。packagechapter2;/***Createdbyryderon2017/6/7.*单例模式*定义:指实现了特殊模式的类,该类仅能被实例化一次,产生唯一的一个对象*应用举例:windows的任务管理器,回收站,web应用的配置对象,spring中的bean默认也是单例*
ryderchan
·
2021-05-18 21:52
剑指offer第二版
-3.数组中重复的数
本系列导航:剑指offer(第二版)java实现导航帖面试题3:数组中重复的数题目要求:在一个长度为n的数组中,所有数字的取值范围都在[0,n-1],但不知道有几个数字重复或重复几次,找出其中任意一个重复的数字。解法比较:解法解法介绍是否改变原数组时间复杂度空间复杂度解法一暴力求解否o(n^2)o(1)解法二借助快排是o(nlogn)o(1)解法三借助哈希表否o(n)o(n)解法四根据数字特点排序
ryderchan
·
2021-05-16 01:59
剑指offer第二版
-54.二叉搜索树的第k大节点
本系列导航:剑指offer(第二版)java实现导航帖面试题54:二叉搜索树的第k大节点题目要求:找出二叉搜索树的第k大节点。例如,在下图的树里,第3大节点的值为4,输入该树的根节点,3,则输出4。5/\37/\/\2468解题思路:二叉搜索树的中序遍历是有序的。可以引入一个计数器,每访问一个节点,计数器+1,当计数器等于k时,被访问节点就是该二叉搜索树的第k大节点。packagechapter6
ryderchan
·
2021-05-14 15:10
剑指offer第二版
-66.构建乘积数组
本系列导航:剑指offer(第二版)java实现导航帖面试题66:构建乘积数组题目要求:给定数组A[0,1...n-1],求B[0,1...n-1],要求B[i]=A[0]*A[1]...A[i-1]*A[i+1]...A[n-1],不能使用除法。解题思路:如果没有不能用除法的限制,可以通过∑A/A[i]求得B[i],同时要注意A[i]等于0的情况。既然不能使用除法,那就只好用纯乘法计算。如果每一
ryderchan
·
2021-05-14 13:18
剑指offer第二版
-42.连续子数组的最大和(动态规划)
本系列导航:剑指offer(第二版)java实现导航帖](http://www.jianshu.com/p/010410a4d419)面试题42:连续子数组的最大和题目要求:输入一个整形数组,数组里有正数也有负数。数组中一个或连续多个整数组成一个子数组。求所有子数组的和的最大值,要求时间复杂度为o(n)。解题思路:暴力求解,简单直接,但时间复杂度o(n^2)。其实这种最值问题,很容易让人想到动态规
ryderchan
·
2021-05-14 12:52
剑指offer第二版
-18.2删除排序链表中重复的节点
本系列导航:剑指offer(第二版)java实现导航帖面试题18题目二:删除排序链表中重复的节点题目要求:比如[1,2,2,3,3,3],删除之后为[1];解题思路:由于是已经排序好的链表,需要确定重复区域的长度,删除后还需要将被删去的前与后连接,所以需要三个节点pre,cur,post,cur-post为重复区域,删除后将pre与post.next连接即可。此外,要注意被删结点区域处在链表头部的
ryderchan
·
2021-05-02 03:40
剑指offer第二版
-68.树中两个节点的最低公共祖先
本系列导航:剑指offer(第二版)java实现导航帖面试题68:树中两个节点的最低公共祖先题目要求:输入一棵树的根节点,输入两个被观察节点,求这两个节点的最低(最近)公共祖先。解题思路:此题比较开放,主要是对于“树”没有做明确说明,所以原书中就对树的可能情况做了假设,然后就衍生出多种思路1)如果是二叉,搜索树:遍历找到比第一个节点大,比第二个节点小的节点即可2)如果是父子间有双向指针的树:由下往
ryderchan
·
2021-04-30 03:58
剑指Offer第二版
面试题6 从尾到头打印链表
题目:输入一个链表的头节点,从尾到头反过来打印出每个节点的值。链表节点定义如下:structListNode{intm_nKey;ListNode*m_pNext;};首先,明确要解决这个问题肯定需要遍历链表,但是遍历链表的顺序是从头到尾,要求输出的顺序是从尾到头。思路一:第一个遍历的节点最后一个输出,最后一个遍历的节点第一个输出,典型的“后进先出”,可以用栈实现这个顺序。每遍历一个节点,放入栈中
冰枫澈
·
2021-04-27 02:59
剑指offer第二版
-9.用两个栈实现队列
本系列导航:剑指offer(第二版)java实现导航帖面试题9:用两个栈实现队列题目要求:用两个栈,实现队列的从队尾插入元素offer()和从队头抛出元素poll()相关:用队列实现栈思路:(1)对于插入操作,栈与队列都是从队尾进行,因此一行代码就可以完成offer()(2)对于弹出操作,队列先进先出从队头开始,而栈后进先出从队尾开始,要想取到队头元素,就得需要第二个栈stack2的协助:弹出时将
ryderchan
·
2021-04-24 10:27
剑指offer第二版
面试题9:用两个栈实现队列(java)
题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deletedHead,分别完成在队列尾部插入节点和在队列头部删除节点的功能。分析:我们通过一个具体的例子来分析该队列插入和删除元素的过程。首先插入一个元素a,不妨先把它插入到stack1,此时stack1中的元素有{a},stack2为空。再压入两个元素b和c,还是插入到stack1中,此时stack1中的元
许文杰
·
2020-09-15 06:45
java基础
算法
剑指offer第二版
——面试题43(java)
面试题:1~n整数中1出现的次数题目:输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数。如输入12,1~12这些整数中包括1的数字有1、10、11和12,1一共出现了5次【思路】剑指offer上的解释有点看不懂囧,参考:https://www.cnblogs.com/wangkundentisy/p/8946858.html对于一个形如xxxx的数,如要计算1出现在十位的数的个数,即x
冲鸭!!!!!
·
2020-09-15 05:13
剑指offer第二版
剑指offer第二版
面试题60 n个骰子的点数 python 动规
所有题目单独整理的版本存储在这里,点击题目名字可以跳转到牛客网的成功提交记录,点击python可以看到存储库中的对应求解代码。把n个骰子仍在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。defoffer60(n):#第n个骰子得到k的次数由n-1个骰子k-1~k-6的个数和所决定,动规递推式#f(n,k)=f(n-1,k-1)+f(n-1,k-2)+f(n-1,k
每一个有风的日子
·
2020-09-15 04:23
剑指offer第二版
(Python3)--面试题18:删除链表中重复的节点
第2章面试需要的基础知识第3章高质量的代码 面试题16:数值的整数次方 面试题18:删除链表中重复的节点 面试题19:正则表达式匹配 面试题20:表示数值的字符串 面试题21:调整数组顺序使奇数位于偶数前面 面试题22:链表中倒数第k个结点 面试题23:链表中环的入口 面试题24:翻转链表第4章解决面试题的思路第5章优化时间和空间效率第6章面试中的各项能力第7章两个面试案例题目描述
qq_27668313
·
2020-09-14 02:27
算法设计
剑指offer
删除链表中重复的节点
Python3
剑指offer第二版
(Python3)--面试题16:数值的整数次方
第2章面试需要的基础知识第3章高质量的代码 面试题16:数值的整数次方 面试题21:调整数组顺序使奇数位于偶数前面第4章解决面试题的思路第5章优化时间和空间效率第6章面试中的各项能力第7章两个面试案例题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0。 这道题按照书上的解题方法,P
qq_27668313
·
2020-09-14 02:27
算法设计
剑指offer
数值的整数次方
剑指offer第二版
(Python3)--面试题23:链表中环的入口
第2章面试需要的基础知识第3章高质量的代码 面试题16:数值的整数次方 面试题21:调整数组顺序使奇数位于偶数前面 面试题22:链表中倒数第k个结点 面试题23:链表中环的入口 面试题24:翻转链表第4章解决面试题的思路第5章优化时间和空间效率第6章面试中的各项能力第7章两个面试案例题目描述牛客网 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。解题思路AC=
qq_27668313
·
2020-09-14 01:18
算法设计
剑指offer
链表中环的入口
Python3
剑指offer刷题
剑指offer第二版
ExampleProblemSolution2.3.1数组(面试题3)数组中重复的数字JAVA2.3.1数组(面试题4)二维数组中的查找JAVA2.3.2字符串(面试题5)替换空格JAVA2.3.3
Ubuntu1996
·
2020-09-11 00:13
剑指offer第二版
(Java最优解)---替换空格
题目请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“Wearehappy.”,则输出“We%20are%20happy.”。回到顶部思路首先要询问面试官是新建一个字符串还是在原有的字符串上修改,本题要求在原有字符串上进行修改。若从前往后依次替换,在每次遇到空格字符时,都需要移动后面O(n)个字符,对于含有O(n)个空格字符的字符串而言,总的时间效率为O(n2)。转变思路:先计算出需
九狼筅
·
2020-08-21 22:50
计算机技术
JAVA实现
剑指offer第二版
4
面试题39:数组中出现次数超过一半的数字如果将数组排序,位于数组中间的数字一定是出现次数超过的那个数,有o(n)的算法可以得到数组中第k大的数字;在快排中,随机选择一个数字,调整数组中数字的顺序,调整后若刚好处在n/2处则找到;小于n/2则中位数处在左边,大于n/2则位于左边o(n0出现次数超过数组长度一半,说明其出现的次数超过其余的总和,遍历数组,出现相同+1,不同-1;回到0则选择当前开始计数
史前大洪水
·
2020-08-21 21:45
上一页
1
2
3
4
5
下一页
按字母分类:
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
其他