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第二版
-31.栈的压入弹出序列
本系列导航:剑指offer(第二版)java实现导航帖面试题31:栈的压入弹出序列题目要求:输入两个整数序列,第一个序列表示栈的压入顺序,判断第二个序列是否为该栈的弹出序序列。假设压入栈的所有数字均不相等。例如,压入序列为(1,2,3,4,5),序列(4,5,3,2,1)是它的弹出序列,而(4,3,5,1,2)不是。解题思路:对于一个给定的压入序列,由于弹出的时机不同,会出现多种弹出序列。如果是选
ryderchan
·
2020-04-06 04:22
剑指offer第二版
-13.机器人的运动范围(回溯法)
本系列导航:剑指offer(第二版)java实现导航帖面试题13:机器人的运动范围题目要求:地上有一个m行n列的方格,一个机器人从坐标(0,0)的各自开始移动,它每次可以向上下左右移动一格,但不能进入横纵坐标数位之和大于k的格子。例如,当k等于18时,机器人能进入(35,37),因为3+5+3+7=18;但却不能进入(35,38),因为3+5+3+8=19>18。请问该机器人能够到达多少个格子。解
ryderchan
·
2020-04-06 04:34
剑指offer第二版
-50.2.字符流中第一个只出现一次的字符
本系列导航:剑指offer(第二版)java实现导航帖面试题50.2:字符流中第一个只出现一次的字符题目要求:找出字符流中第一个只出现一次的字符。例如,当从字符流google中只读出前两个字符go时,第一个只出现一次的字符是g;当读完google时,第一个只出现一次的字符是l。解题思路:此题的关键在于“字符流”。因此最好能够记住在哪个位置出现了哪个字符,从而可以完成每读到一个字符,就能动态更新到目
ryderchan
·
2020-04-04 14:44
剑指offer第二版
-41.数据流中的中位数
本系列导航:剑指offer(第二版)java实现导航帖面试题41:数据流中的中位数题目要求:得到一个数据流中的中位数。解题思路:此题的关键在于“数据流”,即数字不是一次性给出,解题的关键在于重新写一个结构记录历史数据。下面给出三种思路,分别借助于链表、堆、二叉搜索树完成。思路1:使用未排序的链表存储数据,使用快排的分区函数求中位数;也可以在插入时进行排序,这样中位数的获取会很容易,但插入费时。思路
ryderchan
·
2020-03-30 20:39
剑指Offer第二版
面试题4 二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和整数,判断数组中是否含有该整数。解题思路:从左下角或右上角开始比较,如果要找的number此时数组中的数字,则此行均可排除,行++。直至找到该数字。代码如下:注意一点,二维数组在内存中占据连续的空间,在内存中从上到下存储各行元素,同一行中按照从左到右的顺序存储。因
冰枫澈
·
2020-03-30 17:45
剑指offer第二版
-36.二叉搜索树与双向链表
本系列导航:剑指offer(第二版)java实现导航帖面试题36:二叉搜索树与双向链表题目要求:输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表,不能创建任何新的节点,只能调整树中节点指针的指向。解题思路:二叉树的left、right可以看做双向链表的prev、next,因此可以完成二叉搜索树到双向链表的转换,关键是如何保证转换后为排序好的链表。最终生成的双向链表有序,而二叉搜索树的中序
ryderchan
·
2020-03-30 15:11
剑指offer第二版
-51.数组中的逆序对
本系列导航:剑指offer(第二版)java实现导航帖面试题51:数组中的逆序对题目要求:如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对总数。例如输入{7,5,6,4},一共有5个逆序对,分别是(7,6),(7,5),(7,4),(6,4),(5,4)。解题思路:思路1:暴力解决。顺序扫描数组,对于每个元素,与它后面的数字进行比较,因此这种思路的时
ryderchan
·
2020-03-29 13:26
剑指offer第二版
-30.包含min函数的栈
本系列导航:剑指offer(第二版)java实现导航帖面试题30:包含min函数的栈题目要求:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。要求在该栈中,调用min,push及pop的时间复杂度都是o(1)。解题思路:期望获知当前栈的最小值,最直接的方法是全部弹出求最小值,然后再全部压入。这种方式时间消耗较大。另一种思路,可以用空间换时间:自己实现一个栈,栈中有记录数据的
ryderchan
·
2020-03-28 05:47
剑指offer第二版
-10.斐波那契数列
本系列导航:剑指offer(第二版)java实现导航帖面试题10:斐波那契数列题目要求:求斐波那契数列的第n项的值。f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)n>1解法比较:解法3,4将问题数学化,借助数学工具的推导,从根本上减低时间复杂度。解法解法介绍时间复杂度空间复杂度解法1依定义递归求解o(n^2)o(1)解法2从0开始迭代求解o(n)o(1)解法3借助等比数列公式o(
ryderchan
·
2020-03-26 23:52
剑指offer第二版
-48.最长不含重复字符的子字符串(动态规划)
本系列导航:剑指offer(第二版)java实现导航帖面试题48:最长不含重复字符的子字符串题目要求:输入一个字符串(只包含a~z的字符),求其最长不含重复字符的子字符串的长度。例如对于arabcacfr,最长不含重复字符的子字符串为acfr,长度为4。解题思路:动态规划。用dp[]记录状态,dp[i]表示以下标为i的字符结尾不包含重复字符的最长子字符串长度。初始化dp[0]=1,求maxdp。每
ryderchan
·
2020-03-25 12:30
剑指offer第二版
-39.数组中出现次数超过一半的数字
本系列导航:剑指offer(第二版)java实现导航帖面试题39:数组中出现次数超过一半的数字题目要求:找出数组中出现次数超过数组长度一半的数字。如输入{1,2,3,2,2,2,5,4,2},则输出2。解题思路:因为该数字的出现次数超过了数组长度的一半,因此可以将问题转化为求数组的中位数。如果按照这个思路,有以下两种方式解决:排序后求中位数、用快排的分区函数求中位数(topK问题),这两种思路都比
ryderchan
·
2020-03-21 18:30
剑指Offer第二版
面试题5 替换空格
预备知识:字符串:1.C/C++中每个字符串都以字符'\0'作为结尾。好处:方便找到尾部。缺点:额外字符开销,不留神会造成字符串越界,将'\0'遗忘。2.char*str3="helloworld";char*str4=“helloworld”;str3与str4是两个字符指针,无需为它们分配内存以存储字符串的内容,“helloworld”常量字符串在内存中只有一个拷贝,两个指针指向“hellow
冰枫澈
·
2020-03-02 14:31
剑指offer第二版
总结——基于牛客网
剑指offer第二版
总结——基于牛客网1.在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
小张同学_loveZY
·
2020-02-29 01:05
剑指Offer第二版
面试题3 数组中重复的数字
剑指Offer第二版
面试题3心得数组中重复的数字:题目一:找出数组中重复的数字。在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的。
冰枫澈
·
2020-02-13 13:25
《
剑指offer第二版
》面试题39:数组中出现次数超过一半的数字(java)
题目描述数组中有一个数字出现次数超过数组长度的一半,请找出这个数字,也称为中位数。比如数组为{1,2,3,2,2,2,5,4,2},则输出2。解体思路1:如果对这个数组排序,则数组中间的数字肯定是出现次数超过数组长度的一半的数字。先在数组中随机选取一个数字,然后调整数字的顺序,比这个数大的在右边,比这个数小的在左边。如果这个选择的数字下标刚好是数组长度的一半,则这个数字就是中位数。如果这个选择的数
castlet
·
2020-01-04 23:49
剑指offer第二版
-62.圆圈中最后剩下的数字
本系列导航:剑指offer(第二版)java实现导航帖面试题62:圆圈中最后剩下的数字题目要求:0,1,2...n-1这n个数字拍成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字,求剩下的最后一个数字。例如0,1,2,3,4这5个数字组成的圈,每次删除第3个数字,一次删除2,0,4,1,因此最后剩下的是3。解题思路:最直接的思路是用环形链表模拟圆圈,通过模拟删除过程,可以得到最后剩下的数字
ryderchan
·
2019-12-31 21:32
剑指offer第二版
-52.两个链表的第一个公共节点
本系列导航:剑指offer(第二版)java实现导航帖面试题52:两个链表的第一个公共节点题目要求:输入两个单链表,找出它们的第一个公共节点。以下图为例,对一个公共节点为6所在的节点。1->2->3->6->74->5↗解题思路:解法思路时间复杂度空间复杂度1暴力求解o(mn)o(1)2分别存入两个栈,求栈中最深的相同节点o(m+n)o(m+n)3长链表先行|n-m|步,转化为等长链表o(m+n)
ryderchan
·
2019-12-28 23:14
剑指offer第二版
-53.数字在排序数组中出现的次数
本系列导航:剑指offer(第二版)java实现导航帖面试题53:数字在排序数组中出现的次数题目要求:统计一个数字在排序数组中出现的次数。例如,输入{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4。解题思路:排序数组,定位某一个数值的位置,很容易想到二分查找。分成两部分:求第一个出现该值的位置start,求最后一个出现该值得位置end,end-start+1即为
ryderchan
·
2019-12-27 14:06
剑指offer第二版
-用队列实现一个栈
本系列导航:剑指offer(第二版)java实现导航帖用队列实现一个栈题目要求:用两个队列,实现栈的从队尾插入元素push()和从队尾抛出元素pop()相关:用栈实现队列思路(书中标准解法:用两个队列实现一个栈):(1)对于插入操作,栈与队列都是从队尾进行,因此很容易完成。(2)对于弹出操作,队列从队头开始,而栈从队尾开始,要想取到队尾元素,需要第二个队列的协助:假设queue1不为空,queue
ryderchan
·
2019-12-26 02:21
剑指offer第二版
(Python3)--面试题67 : 把字符串转换成整数
第2章面试需要的基础知识第3章高质量的代码第4章解决面试题的思路第5章优化时间和空间效率第6章面试中的各项能力 面试题62:圆圈中最后剩下的数字 面试题64:求1+2+3+…+n 面试题65:不用加减乘除做加法 面试题67:把字符串转换成整数第7章两个面试案例题目描述牛客网 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。数值为0或者字符串不是一个合法的数值则返回0 p
qq_27668313
·
2019-11-19 23:10
算法设计
剑指offer
把字符串转换成整数
Python3
剑指offer第二版
(Python3)--面试题3 : 数组中重复的数字
第2章面试需要的基础知识 面试题3:数组中重复的数字第3章高质量的代码第4章解决面试题的思路第5章优化时间和空间效率第6章面试中的各项能力 面试题62:圆圈中最后剩下的数字 面试题64:求1+2+3+…+n 面试题65:不用加减乘除做加法 面试题67:把字符串转换成整数第7章两个面试案例题目描述牛客网 在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不
qq_27668313
·
2019-11-19 23:37
算法设计
剑指offer
数组中重复的数字
Python3
剑指offer第二版
(Python3)--面试题39 : 数组中出现次数超过一半的数字
第2章面试需要的基础知识第3章高质量的代码第4章解决面试题的思路 面试题27:二叉树的镜像 面试题29:顺时针打印矩阵 面试题30:包含min函数的栈 面试题31:栈的压入、弹出序列 面试题32:上往下打印二叉树 面试题33:二叉搜索树的后序遍历序列 面试题34:二叉树中和为某一值的路径 面试题35:复杂链表的复制 面试题36:二叉搜索树与双向链表 面试题38:字符串的排列第5
qq_27668313
·
2019-11-15 22:34
算法设计
剑指offer
数组中出现次数超过一半的数字
剑指offer第二版
(Python3)--面试题34:二叉树中和为某一值的路径
第2章面试需要的基础知识第3章高质量的代码第4章解决面试题的思路 面试题27:二叉树的镜像 面试题29:顺时针打印矩阵 面试题30:包含min函数的栈 面试题31:栈的压入、弹出序列 面试题32:上往下打印二叉树 面试题33:二叉搜索树的后序遍历序列 面试题34:二叉树中和为某一值的路径第5章优化时间和空间效率第6章面试中的各项能力第7章两个面试案例题目描述牛客网 输入一颗二叉树的
qq_27668313
·
2019-11-11 22:04
算法设计
剑指offer
二叉树中和为某一值得路径
剑指offer第二版
-56.2.数组中唯一只出现一次的数字
本系列导航:剑指offer(第二版)java实现导航帖面试题56.2:数组中唯一只出现一次的数字题目要求:在一个整数数组中除了一个数字只出现一次外,其他数字都出现三次。找出那个出现一次的数字。解题思路:如果题目中的“三次”换成“两次”,这道题目将非常简单,因此两个相同的数字异或,每一位都会变成0,其实亦或也可以看成两个数字的每一个二进制位对应进行加法后对2取模后的结果。按照这种思路,对于出现三次的
ryderchan
·
2019-11-03 09:32
剑指offer第二版
python 牛客网刷题全记录
所有题目单独整理的版本存储在这里,点击题目名字可以跳转到牛客网的成功提交记录,点击python可以看到存储库中的对应求解代码。《剑指offer》牛客网刷题总结点击题目可以跳转到牛客网上对应的AC提交记录,具体的python文件存储在库中。TitleSolutionTimeSpaceCategory二维数组中的查找PythonO(n)O(1)数组替换空格PythonO(n)O(1)字符串从尾到头打印
beihaizhixin
·
2019-06-20 15:08
剑指offer第二版
面试题62 孩子们的游戏(圆圈中最后剩下的数) python 动规
所有题目单独整理的版本存储在这里,点击题目名字可以跳转到牛客网的成功提交记录,点击python可以看到存储库中的对应求解代码。'''每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌
OnlyChristmas
·
2019-06-17 19:19
剑指offer第二版
面试题61 扑克牌顺子 python
所有题目单独整理的版本存储在这里,点击题目名字可以跳转到牛客网的成功提交记录,点击python可以看到存储库中的对应求解代码。'''LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“OhMyGo
OnlyChristmas
·
2019-06-17 19:57
剑指offer第二版
——面试题17(java)
面试题17:打印从1到最大的n位数题目描述:输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的3位数即999【注意】:n的范围,当n超过longlong的范围时,应该如何处理——大数方法一:用字符串或者数组的方式来表达大数方法二:转换为数字排列的解法,用递归来解决问题如果在数字前面补0,则n位所有十进制数其实是n个从0~9的全排列——把数字的每一位都从0~
冲鸭!!!!!
·
2019-04-09 16:29
剑指offer第二版
剑指Offer第二版
面试题16(java实现)
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解题思路指数为负时,可以先对指数求绝对值,算出次方的结果后再取倒数当底数为0,指数为负时,会出现对0求倒数情况,要特殊处理0的0次方在数学上没有意义,因此无论输出0还是1都是可以接受的在计算次方的时候,除了简单的遍历,我们可以使用递归的思想,如下公式,来减少计算量:代码实现publ
Coder_kiwi
·
2019-03-14 16:26
剑指Offer(第二版)
Java
剑指Offer
剑指Offer第二版
面试题16(java实现)
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解题思路指数为负时,可以先对指数求绝对值,算出次方的结果后再取倒数当底数为0,指数为负时,会出现对0求倒数情况,要特殊处理0的0次方在数学上没有意义,因此无论输出0还是1都是可以接受的在计算次方的时候,除了简单的遍历,我们可以使用递归的思想,如下公式,来减少计算量:代码实现publ
Coder_kiwi
·
2019-03-14 16:26
剑指Offer
剑指Offer第二版
面试题15(java实现)
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1,
Coder_kiwi
·
2019-03-13 21:39
剑指Offer
剑指Offer第二版
面试题15(java实现)
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1,
Coder_kiwi
·
2019-03-13 21:39
剑指Offer
剑指Offer第二版
面试题13(java实现)
题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7=18。但是,它不能进入方格(35,38),因为3+5+3+8=19。请问该机器人能够达到多少个格子?解题思路回溯法:从(0,0)开始走,每成功走一步用一个fl
Coder_kiwi
·
2019-03-13 21:20
剑指Offer(第二版)
Java
剑指Offer
剑指Offer第二版
面试题12(java实现)
题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。例如abcesfcsadee这样的3X4矩阵中包含一条字符串”bcced”的路径,但是矩阵中不包含”abcb”路径,因为字符串的第一个字符b占据了矩阵中的第一行
Coder_kiwi
·
2019-03-13 20:27
剑指Offer
剑指Offer第二版
面试题11(java实现)
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路采用二分查找法。需要考虑三种情况:array[mid]>array[high]:最小数字一定在mid右边,low=
Coder_kiwi
·
2019-03-13 18:15
剑指Offer(第二版)
Java
剑指Offer
剑指Offer第二版
面试题7(java实现)
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路我们知道,前序遍历的第一个节点就是树的根节点,所以我们先根据前序遍历序列的第一个数字创建根结点,接下来在中序遍历序列中找到根结点的位置,根节点的左边
Coder_kiwi
·
2019-03-12 22:50
剑指Offer
剑指Offer第二版
面试题6(java实现)
题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解题思路一种方法是利用栈来实现;另外一种方法是利用三个指针把链表反转,关键是r指针保存断开的节点。代码实现importjava.util.ArrayList;importjava.util.Stack;//这部分是利用栈来实现的。publicclassProblem06a{publicclassListNode{intval;
Coder_kiwi
·
2019-03-12 21:57
剑指Offer(第二版)
Java
剑指Offer
剑指offer第二版
——面试题7(java)
面试题7:重建二叉树题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重新构造出该二叉树。假设输入的前序遍历和中序遍历的结果中不包含重复的数字。例如输入的前序遍历序列为{1,2,4,7,3,5,6,8}和中序遍历为{4,7,2,1,5,3,6,8},则重建出二叉树并输出它的头结点(head.Too(head)——是ListNode中写的一个递归的前序遍历)代码://2019-06-14publi
冲鸭!!!!!
·
2019-03-08 16:05
剑指offer第二版
剑指offer第二版
-17打印从1到最大的n位数
/***打印从1到最大的n位数**如输入2,打印1,2......98,99*注意:本题需要考虑大数问题,用字符串解决大数问题是最好的解决方案之一*用字符串表示数字的时候,最直观的方法就是字符串里每个字符都是‘0’到‘9’之间的某一个字符,用来表示数字中的一位。因为最大的是n位的,*因此我们需要一个长度为n+1的字符串(字符串中最后一个是结束符号‘\0’。当实际数字不够n位的时候,在字符串的前半部
VicterTian
·
2019-02-09 21:46
剑指offer(第二版)
剑指Offer(第二版)
剑指offer6.从尾到头打印链表
剑指offer第二版
第六题题目从尾到头打印链表题目分析从尾到头打印链表python源码#-*-coding:utf-8-*-#classListNode:#def__init__(self,x):#self.val
baixiaoshuai
·
2018-10-15 21:09
剑指offer:2.二维数组的查找(Java版)
备注:本文参照《
剑指offer第二版
》题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
Tom-shushu
·
2018-07-28 19:00
剑指offer第二版
面试题17:打印1到最大的n位数(java)
题目描述:输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的3位数即999跳进面试官的陷阱:这个题目看起来很简单。我们看到这个问题后,最容易想到的办法是求出最大的n位数,然后用一个循环从1开始逐个打印。于是我们很容易写出下面的代码。publicstaticvoidprint1ToMaxOfNDigits(intn){intnumber=(int)Math.
许文杰
·
2018-04-30 17:28
java基础
算法
剑指offer第二版
-67.把字符串转换成整数
本系列导航:剑指offer(第二版)java实现导航帖面试题67:把字符串转换成整数题目要求:如题。解题思路:此题比较麻烦的点是特殊情况较多,需要考虑完全。1.如果字符串前后有空格,要去除;2.如果是空串或null,要特殊处理;3.如果头部有多个正负号,要特殊处理;4.如果数值超出int的范围,要特殊处理;比int的最大值还要大,已经上溢,这肯定不能通过数字的大小比较,所以需要在字符串的状态下判断
ryderchan
·
2017-09-06 14:00
剑指offer第二版
-不使用新的变量完成交换两个原有变量的值
本系列导航:剑指offer(第二版)java实现导航帖面试题:不使用新的变量完成交换两个原有变量的值题目要求:不使用新的变量完成交换两个原有变量的值。解题思路:有加减法与亦或法两种,其实思路是一致的。推荐亦或法,不仅仅是代码上更简单,而且亦或的运算在理论上也要比加减法更快。packagechapter6;/***CreatedwithIntelliJIDEA*Author:ryder*Date:2
ryderchan
·
2017-09-06 11:48
剑指offer第二版
-63.股票的最大利润
本系列导航:剑指offer(第二版)java实现导航帖面试题63:股票的最大利润题目要求:求买卖股票一次能获得的最大利润。例如,输入{9,11,8,5,7,12,16,14},5的时候买入,16的时候卖出,则能获得最大利润11。解题思路:遍历过程中记录最小值min,然后计算当前值与min的差值diff,并更新maxDiff,maxDiff=max(diff)。packagechapter6;/**
ryderchan
·
2017-09-06 11:33
剑指offer第二版
-61.扑克牌中的顺子
本系列导航:剑指offer(第二版)java实现导航帖面试题61:扑克牌中的顺子题目要求:抽取5张牌,判断是不是一个顺子。2-10为数字本身,A为1,J为11,Q为12,K为13,大小王可堪称任意数字。解题思路:将1-10,J,Q,K记作1-13,大小王记作0,0可以转化为任意的1-13的数字,判断输入的5个数字是否能组成连续的5个数字即可。packagechapter6;/***Createdw
ryderchan
·
2017-09-06 10:25
剑指offer第二版
-60.n个骰子的点数
本系列导航:剑指offer(第二版)java实现导航帖面试题60:n个骰子的点数题目要求:把n个骰子仍在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值的出现概率。解题思路:新加入一个骰子,它出现1-6的概率是相等的,可以看成各出现一次,那么出现和为s的次数等于再加入之前出现和为s-1,s-2,s-3,s-4,s-5,s-6这6种情况的次数之和。如此循环,直到加入n个骰子结束。
ryderchan
·
2017-09-06 10:23
剑指offer第二版
-59.2.队列的最大值
本系列导航:剑指offer(第二版)java实现导航帖面试题59.2:队列的最大值题目要求:定义一个队列并实现函数max得到队列里的最大值。要求max,pushBack,popFront的时间复杂度都是o(1)。解题思路:两个思路均延续自59.滑动窗口的最大值思路1:借助之前做过的9.用两个栈实现队列和30.包含min函数的栈,我们可以实现求队列的最大值。入队时间复杂度o(1),出队时间复杂度o(
ryderchan
·
2017-09-06 10:41
剑指offer第二版
-59.滑动窗口的最大值
本系列导航:剑指offer(第二版)java实现导航帖面试题59:滑动窗口的最大值题目要求:给定一个数组和滑动窗口的大小,请找出所有滑动窗口的最大值。例如,输入数组{2,3,4,2,6,2,5,1}和数字3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}。解题思路:思路1:使用暴力求解。假设滑动窗口长度为k,每到一个点都向前遍历k-1个节点,那么总时间复杂度为o(nk)。思
ryderchan
·
2017-09-06 10:27
剑指offer第二版
-58.翻转单词顺序
本系列导航:剑指offer(第二版)java实现导航帖面试题58:翻转单词顺序题目要求:输入一个英文句子,翻转单词顺序,单词内字符不翻转,标点符号和普通字母一样处理。例如输入输入“Iamastudent.”,则输出“student.aamI”。解题思路:首先字符串整体翻转,得到“.tnedutsamaI”;然后以空格作为分隔符进行切分,对于切分下来的每一部分再进行翻转,得到“student.aam
ryderchan
·
2017-09-06 08:27
上一页
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
其他