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
《程序员面试金典》题目解析
PTA ——浙江大学部分数据结构
题目解析
二分查找函数接口定义:PositionBinarySearch(ListL,ElementTypeX);其中List结构定义如下:typedefintPosition;typedefstructLNode*List;structLNode{ElementTypeData[MAXSIZE];PositionLast;/*保存线性表中最后一个元素的位置*/};L是用户传入的一个线性表,其中Elemen
却揉独宠兰儿
·
2020-07-04 05:38
数据结构
程序员面试金典
——3.6双栈排序
此题本意是对一个栈中的数据进行排序,最多用另一个栈来缓存。但在牛客网上利用vector来模拟栈,还规定只能访问头元素。。。题目原意:编写程序,按升序对栈进行排序(即最大元素位于栈顶)。最多只能用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中(如数组)。classTwoStacks{public:vectortwoStacksSort(stacknums){//利用两个栈排序stackn
Allenlzcoder
·
2020-07-04 04:31
程序员面试金典题目笔记
Lintcode373 Partition Array by Odd and Even solution 题解
【题目链接】www.lintcode.com/en/problem/partition-array-by-odd-and-even/【
题目解析
】1、将数组中的奇数和偶数分开,使用『两根指针』的方法,用快排的思路
程风破浪会有时
·
2020-07-04 02:10
程序员面试金典
- 面试题 16.16. 部分排序(排序/不排序)
文章目录1.题目2.解题2.1排序2.2不排序1.题目给定一个整数数组,编写一个函数,找出索引m和n,只要将索引区间[m,n]的元素排好序,整个数组就是有序的。注意:n-m尽量最小,也就是说,找出符合条件的最短序列。函数返回值为[m,n],若不存在这样的m和n(例如整个数组是有序的),请返回[-1,-1]。示例:输入:[1,2,4,7,10,11,7,12,6,7,16,18,19]输出:[3,9
Michael阿明
·
2020-07-04 01:02
《程序员面试金典》
程序员面试金典
- 面试题 17.18. 最短超串(双指针+哈希)
1.题目假设你有两个数组,一个长一个短,短的元素均不相同。找到长数组中包含短数组所有的元素的最短子数组,其出现顺序无关紧要。返回最短子数组的左端点和右端点,如有多个满足条件的子数组,返回左端点最小的一个。若不存在,返回空数组。示例1:输入:big=[7,5,9,0,2,1,3,5,7,9,1,1,5,8,8,9,7]small=[1,5,9]输出:[7,10]示例2:输入:big=[1,2,3]s
Michael阿明
·
2020-07-04 01:02
《程序员面试金典》
程序员面试金典
- 面试题 16.10. 生存人数(自定义优先队列)
文章目录1.题目2.解题2.1优先队列2.2双指针1.题目给定N个人的出生年份和死亡年份,第i个人的出生年份为birth[i],死亡年份为death[i],实现一个方法以计算生存人数最多的年份。你可以假设所有人都出生于1900年至2000年(含1900和2000)之间。如果一个人在某一年的任意时期都处于生存状态,那么他们应该被纳入那一年的统计中。例如,生于1908年、死于1909年的人应当被列入1
Michael阿明
·
2020-07-04 01:02
《程序员面试金典》
二叉搜索树的后序遍历序列(剑指offer-23)
题目解析
采用分治法的思想,找到根结点、左子树的序列、右子树的序列,分别判断左右子序列是否为二叉树的后序序列。
10000_Hours
·
2020-07-03 11:00
从上到下打印二叉树(剑指offer-22)
题目解析
使用队列来进行层次遍历,本质上就是宽搜。题目解答importjava.util.
10000_Hours
·
2020-07-03 10:00
不用加减乘除做加法(剑指offer-48)
题目解析
首先看十进制是如何做的:5+7=12,三步走第一步:相加各位的值,不算进位,得到2。第二步:计算进位值,得到10.如果这一步的进位值为0,那么第一步得到的值就是最终结果。
10000_Hours
·
2020-07-02 21:00
栈的压入、弹出序列(剑指offer-21)
(注意:这两个序列的长度是相等的)
题目解析
借用一个额外的辅助栈入栈1,2,3,4,5出栈4,5,3,2,1遍历压栈顺序,先将
10000_Hours
·
2020-07-02 20:00
包含min函数的栈(剑指offer-20)
题目解析
Java里Stack的peek方法是返回栈顶的元素但不移除它,但Stack的pop方法是会移除的。
10000_Hours
·
2020-07-02 20:00
程序员面试金典
- 面试题 16.18. 模式匹配(逻辑题)
1.题目你有两个字符串,即pattern和value。pattern字符串由字母"a"和"b"组成,用于描述字符串中的模式。例如,字符串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a",“go"是"b”),该字符串也匹配像"a"、"ab"和"b"这样的模式。但需注意"a"和"b"不能同时表示相同的字符串。编写一个方法判断value字符串是否匹配pattern字符串。示例
Michael阿明
·
2020-07-02 16:23
《程序员面试金典》
程序员面试金典
- 面试题 04.09. 二叉搜索树序列(双端队列+回溯)**
1.题目从左向右遍历一个数组,通过不断将其中的元素插入树中可以逐步地生成一棵二叉搜索树。给定一个由不同节点组成的二叉树,输出所有可能生成此树的数组。示例:给定如下二叉树2/\13返回:[[2,1,3],[2,3,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/bst-sequences-lcci著作权归领扣网络所有。商业转载请联系官方授权
Michael阿明
·
2020-07-02 16:22
《程序员面试金典》
程序员面试金典
- 面试题 04.10. 检查子树(双重递归)
1.题目检查子树。你有两棵非常大的二叉树:T1,有几万个节点;T2,有几万个节点。设计一个算法,判断T2是否为T1的子树。如果T1有这么一个节点n,其子树与T2一模一样,则T2为T1的子树,也就是说,从节点n处把树砍断,得到的树与T2完全相同。示例1:输入:t1=[1,2,3],t2=[2]输出:true示例2:输入:t1=[1,null,2,4],t2=[3,2]输出:false提示:树的节点数
Michael阿明
·
2020-07-02 16:22
《程序员面试金典》
程序员面试金典
- 面试题 10.03. 搜索旋转数组(二分查找)
1.题目搜索旋转数组。给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详。请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的。若有多个相同元素,返回索引值最小的一个。示例1:输入:arr=[15,16,19,20,25,1,3,4,5,7,10,14],target=5输出:8(元素5在该数组中的索引)示例2:输入:arr=[15,16,19,20,25,1,3
Michael阿明
·
2020-07-02 16:22
《程序员面试金典》
程序员面试金典
- 面试题 02.01. 移除重复节点(哈希set)
1.题目编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例1:输入:[1,2,3,3,2,1]输出:[1,2,3]示例2:输入:[1,1,1,1,2]输出:[1,2]提示:链表长度在[0,20000]范围内。链表元素在[0,20000]范围内。进阶:如果不得使用临时缓冲区,该怎么解决?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems
Michael阿明
·
2020-07-02 16:22
《程序员面试金典》
程序员面试金典
: 9.13 C和C++ 13.9编写对齐的malloc和free函数。
#include#includeusingnamespacestd;/*问题:编写支持对齐分配的malloc和free函数,分配内存时,malloc函数返回的地址必须能被2的n次方整除分析:malloc原型是:void*malloc(intsize),free(void*ptr)。地址能被2^n整除,因此根据给定的size,要计算size<=2^n,其中n为整数,比如6<=2^3,因此分配的字节为
天地一扁舟
·
2020-07-02 15:23
程序员面试金典
程序员面试金典
: 9.11 排序与查找 11.1给定两个排序后的数组A和B,其中A的末端有足够的缓冲容纳B。编写一个方法,将B合入A并排序。
#include#includeusingnamespacestd;/*问题:给定两个排序后的数组A和B,其中A的末端有足够的缓冲容纳B。编写一个方法,将B合入A并排序。分析:排序分为:比较排序,插入排序,归并排序,快速排序,堆排序等。比较排序:通过元素之间两两比较进行排序,典型的有:冒泡排序,堆排序插入排序:找到待排序的位置,将选择好的值插入该位置。典型的有:简单选择排序,从数组中选则最小的放在
天地一扁舟
·
2020-07-02 15:23
程序员面试金典
选择题3
A风险管理计划B工作分解结构C环境和组织因素D质量计划隐藏答案收藏纠错【参考答案】C【
题目解析
】C。
mingming20547
·
2020-07-02 12:31
信息系统项目管理师
选择题2
可行性研究是项目投资决策和编制设计任务书的依据B可行性研究是项目单位筹集资金的重要依据C可行性研究是单位与各有关部门签订各种协议和合同的依据D可行性研究是员工绩效评估的依据隐藏答案收藏纠错【参考答案】D【
题目解析
mingming20547
·
2020-07-02 12:31
信息系统项目管理师
程序员面试金典
笔记
面试题01.01判断字符串中字符是否唯一遇到题目,先想需要考虑的情况:字符串是ASCII字符串还是Unicode字符串?假设为ASCII。首先得有字符串长度判定,超出长度后直接false。思路主要是使用位向量的方法。我们可以使用一个int类型的变量(下文用checker表示)来代替长度为26的bool数组。。假设这个变量占26个bit(在多数语言中,这个值一般不止26),那么我们可以把它看成000
谜底666
·
2020-07-02 12:24
数据结构
JavaScript:leetcode_112. 路径总和
题目解析
:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。
Eighteen Z
·
2020-07-02 10:09
算法
保智商
程序员面试金典
--
题目解析
-2.1 移除未排序链表中的重复结点
2.1题目:移除未排序链表中的重复结点进阶:不使用额外的数据结构解法:使用额外数据结构的解法:遍历链表,如果不存在该key,使用map存储key为node.item;value为true的数据,如果存在该key则删除该结点publicstaticvoiddeleteDuplicateNode1(Nodehead){HashMapmap=newHashMapcurrent=head;Nodeprev
GNin_99
·
2020-07-02 06:42
算法与数据结构
程序员面试金典
--
题目解析
-3.3 实现数据结构SetOfStacks,维护多个栈
3.3题目:基础:设想有一堆盘子,堆太高可能会倒下来。因此在现实生活中,盘子堆到一定高度后,我们会另外堆一堆盘子。请实现数据结构SetOfStacks,模拟这种行为。SetOfStacks由多个栈组成,并且在前一个栈填满时新建一个栈。此外,SetOfStacks的push和pop方法应和普通栈逻辑相同,即push加入到最新栈,pop从最新的栈弹出。进阶:实现一个popAt(intindex)方法,
GNin_99
·
2020-07-02 06:42
算法与数据结构
go语言快速刷《
程序员面试金典
》(3)
编写程序以x为基准分割链表,使得所有小于x的节点排在大于或等于x的节点之前。如果链表中包含x,x只需出现在小于x的元素之后(如下所示)。分割元素x只需处于“右半部分”即可,其不需要被置于左右两部分之间。示例:输入:head=3->5->8->5->10->2->1,x=5输出:3->1->2->10->5->5->8一趟分离,然后连起来即可。/***Definitionforsingly-link
RabbitMQ!!!
·
2020-07-02 02:51
leetcode
LeetCode专题 ——《
程序员面试金典
》
文章目录[面试题01.01.判定字符是否唯一](https://leetcode-cn.com/problems/is-unique-lcci/)[面试题01.02.判定是否互为字符重排](https://leetcode-cn.com/problems/check-permutation-lcci/)[面试题01.03.URL化](https://leetcode-cn.com/problems
aift
·
2020-07-02 00:04
算法(UVa
+
LeetCode
+
OJ
+
……)
实现泛型数组可以对Integer和String类型的数组排序
题目解析
此题主题就是实现一个泛型类,使之能持有一个数组,数组类型有泛型类的类型参数决定,所以我们可以为泛型类在域中添加一个数组。
Special__Yang
·
2020-07-01 21:32
Java
[
程序员面试金典
][JAVA][第02.01题][移除重复节点][Set][双指针]
【问题描述】[简单]编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例1:输入:[1,2,3,3,2,1]输出:[1,2,3]示例2:输入:[1,1,1,1,2]输出:[1,2]提示:链表长度在[0,20000]范围内。链表元素在[0,20000]范围内。进阶:如果不得使用临时缓冲区,该怎么解决?【解答思路】1.Set/哈希集合对给定的链表进行一次遍历,并用一个哈希集合(HashSe
CryptWinter
·
2020-07-01 21:31
非0即1
刷题
10.3 搜索旋转数组
《
程序员面试金典
》(第六版)习题:仅为记录一下以加强印象,不为商业用途,如有侵权请联系删除。以下源码和解释参考了书中源码以及解释。
曹二
·
2020-07-01 19:11
程序员面试金典第六版习题
刷题--
程序员面试金典
--面试题 04.06. 后继者(go)
面试题04.06.后继者设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。如果指定节点没有对应的“下一个”节点,则返回null。示例1:输入:root=[2,1,3],p=12/\13输出:2示例2:输入:root=[5,3,6,2,4,null,null,1],p=65/\36/\24/1输出:null来源:力扣(LeetCode)链接:https://leetcode-c
Allen_Xu17
·
2020-07-01 14:40
刷题--程序员面试金典
LeetCode
刷题
刷题--
程序员面试金典
篇
刷题--
程序员面试金典
--面试题01.01.判定字符是否唯一(go)刷题--
程序员面试金典
--面试题01.02.判定是否互为字符重排(go)刷题--
程序员面试金典
--面试题01.03.URL化(go)刷题
Allen_Xu17
·
2020-07-01 14:39
刷题--程序员面试金典
刷题
LeetCode
刷题--
程序员面试金典
--面试题 02.02. 返回倒数第 k 个节点(go)
面试题02.02.返回倒数第k个节点实现一种算法,找出单向链表中倒数第k个节点。返回该节点的值。注意:本题相对原题稍作改动示例:输入:1->2->3->4->5和k=2输出:4说明:给定的k保证是有效的。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-node-from-end-of-list-lcci著作权归领扣网络所有。商业转载请联
Allen_Xu17
·
2020-07-01 14:39
程序员面试金典
4.10
CheckSubtree:设T1和T2是两个非常大的二叉树,并且T1比T2大,判断T2是否是T1的一个子树。比较直观的解法是对树进行遍历,判断遍历后得到的线性结果是否存在包含关系,但是不能使用中序遍历,应该使用先序遍历。即使是先序遍历,也会存在树结构不同但是结果相同的情况,所以也需要一些修正。写了前面几道题后可以发现,力扣上的测试用例全部都是使用层次遍历的方式表示一棵树,并将不存在的节点标记为nu
RayoNicks
·
2020-07-01 12:01
《程序员面试金典》
程序员面试金典
8.9
Parens:生成n对括号的所有合法排列。可以根据n-1对括号的结果,将第n对括号插入到任意的合法位置,但是这会出现重复的结果,而且判重很麻烦,需要通过完整的字符串比较才可以。classSolution{public:vectorgenerateParenthesis(intn){genCombnation(n);returnvector(Comb.begin(),Comb.end());}pri
RayoNicks
·
2020-07-01 12:01
《程序员面试金典》
Go面试必考题目之defer篇
defer是什么及用途
题目解析
总结下面程序分别输出什么?
_雨落山岚
·
2020-07-01 09:22
#
go
go
defer
283. 移动零
题目来源leetcode题目描述
题目解析
双指针慢指针(lastnonzerofoundat)之前的所有元素都是非零的。当前指针和慢速指针之间的所有元素都是零。
Ocean&&Star
·
2020-07-01 07:51
算法与数据结构
力扣算法题之两数之和
示例:给定nums=[2,7,11,15],target=9;因为nums[0]+nums[1]=2+7=9;所以返回[0,1];
题目解析
:这道题是一道简单的对数组操作的题目,首先遍
weixin_43821826
·
2020-07-01 06:01
JS经典
题目解析
此次列举出一些觉得有意思的JS题目(来源于出了名的44题),相信有非常多关于这些题目的博客,写这篇博客的目的在于巩固一些知识点,希望能和读者共同进步。1.map函数执行过程["1","2","3"].map(parseInt)答案:[1,NaN,NaN]解析:map(functioncallback(current,index,array)),map回掉提供三个参数,currentvalue,in
weixin_30412013
·
2020-07-01 05:50
程序员面试金典
- 面试题 10.01. 合并排序的数组
1.题目给定两个排序后的数组A和B,其中A的末端有足够的缓冲空间容纳B。编写一个方法,将B合并入A并排序。初始化A和B的元素数量分别为m和n。示例:输入:A=[1,2,3,0,0,0],m=3B=[2,5,6],n=3输出:[1,2,2,3,5,6]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sorted-merge-lcci著作权归领扣网
Michael阿明
·
2020-07-01 03:53
《程序员面试金典》
程序员面试金典
: 9.2链表 2.1移除未排序链表中重复的节点
#include#include#includeusingnamespacestd;constintMAXSIZE=10000;/*问题:编写代码,移除未排序链表中的重复节点分析:删除重复节点,关键未排序,如果按照不排序做,那么第一遍需要统计所有元素及出现次数,第二遍扫描的时候,对于重复节点,没删除一次,计数器减1.时间复杂度为O(N)如果先对链表排序,时间复杂度为O(nlogN),没有必要应该是
天地一扁舟
·
2020-07-01 03:24
程序员面试金典
选择题1
A【
题目解析
】项目是独特和临时性的。尽管支持和维护可以是一个
mingming20547
·
2020-07-01 03:08
信息系统项目管理师
go语言快速刷《
程序员面试金典
》(2)
字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。示例1输入:s1="waterbottle",s2="erbottlewat"输出:True示例2输入:s1="aa","aba"输出:FalsefuncisFlipedString(s1string,s2string)bool{returnlen(s1
RabbitMQ!!!
·
2020-07-01 02:04
leetcode
go语言快速刷《
程序员面试金典
》(1)
实现一个算法,确定一个字符串s的所有字符是否全都不同。一个数组统计是否有funcisUnique(astrstring)bool{vararr[26]int;for_,ch:=rangeastr{num:=ch-'a'if(arr[num]==1){returnfalse}arr[num]++}returntrue}给定两个字符串s1和s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否
RabbitMQ!!!
·
2020-07-01 02:04
leetcode
刷题--
程序员面试金典
--面试题 04.10. 检查子树(重点)(go)
面试题04.10.检查子树检查子树。你有两棵非常大的二叉树:T1,有几万个节点;T2,有几万个节点。设计一个算法,判断T2是否为T1的子树。如果T1有这么一个节点n,其子树与T2一模一样,则T2为T1的子树,也就是说,从节点n处把树砍断,得到的树与T2完全相同。示例1:输入:t1=[1,2,3],t2=[2]输出:true示例2:输入:t1=[1,null,2,4],t2=[3,2]输出:fals
Allen_Xu17
·
2020-07-01 01:12
刷题--程序员面试金典
LeetCode
刷题
算法
leetcode
二叉树
数据结构
刷题--
程序员面试金典
--面试题 02.01. 移除重复节点(go)
面试题02.01.移除重复节点编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例1:输入:[1,2,3,3,2,1]输出:[1,2,3]示例2:输入:[1,1,1,1,2]输出:[1,2]提示:链表长度在[0,20000]范围内。链表元素在[0,20000]范围内。进阶:如果不得使用临时缓冲区,该怎么解决?来源:力扣(LeetCode)链接:https://leetcode-cn.c
Allen_Xu17
·
2020-07-01 01:12
刷题--程序员面试金典
LeetCode
刷题
链表
leetcode
算法
数据结构
刷题--
程序员面试金典
--面试题 04.08. 首个共同祖先(重点)(go)
面试题04.08.首个共同祖先设计并实现一个算法,找出二叉树中某两个节点的第一个共同祖先。不得将其他的节点存储在另外的数据结构中。注意:这不一定是二叉搜索树。例如,给定如下二叉树:root=[3,5,1,6,2,0,8,null,null,7,4]3/\51/\/\6208/\74示例1:输入:root=[3,5,1,6,2,0,8,null,null,7,4],p=5,q=1输出:3解释:节点5
Allen_Xu17
·
2020-07-01 01:12
刷题--程序员面试金典
刷题
LeetCode
刷题--
程序员面试金典
--面试题 04.09. 二叉搜索树序列(重点)(go)
面试题04.09.二叉搜索树序列从左向右遍历一个数组,通过不断将其中的元素插入树中可以逐步地生成一棵二叉搜索树。给定一个由不同节点组成的二叉树,输出所有可能生成此树的数组。示例:给定如下二叉树2/\13返回:[[2,1,3],[2,3,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/bst-sequences-lcci著作权归领扣网络所有
Allen_Xu17
·
2020-07-01 01:12
刷题--程序员面试金典
LeetCode
刷题
二叉树
leetcode
算法
数据结构
剑指 offer 面试题精选图解 15 . 二进制中 1 的个数
因此如果输入9,该函数输出2.示例1输入:0x7FFFFFFF输出:31示例2输入:4055输出:10
题目解析
设置一个flag,初始时设置为1,然后与输入的数n进行与&运算,结果不为零,则表明n当中与fl
程序员吴师兄
·
2020-07-01 00:04
剑指 offer 面试题精选图解 15 . 二进制中1的个数
因此如果输入9,该函数输出2.示例1输入:0x7FFFFFFF输出:31示例2输入:4055输出:10
题目解析
设置一个flag,初始时设置为1,然后与输入的数n进行与&运算,结果不为零,则表明n当中与flag
程序员吴师兄
·
2020-07-01 00:25
LeetCode - 164. Maximum Gap(最大间距)(桶)
LeetCode-164.MaximumGap(最大间距)(桶)题目链接
题目解析
桶排序思想和相关实现可以看下这篇博客。
zxzxin
·
2020-06-30 20:40
数据结构
LeetCode
上一页
33
34
35
36
37
38
39
40
下一页
按字母分类:
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
其他