作者简介:大家好,我是未央;
博客首页:未央.303
系列专栏:笔试强训选择题
每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!
文章目录
前言
一、Day21习题(错题)解析
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
总结
前言
一、Day21习题(错题)解析
1.
解析:A
相关知识点:
顺序表在存取任意元素时候,时间复杂度为O(1);
顺序表在最后进行插入或者删除元素时候,时间复杂度也是O(1);
所以最节省时间;
2.
解析:C
相关知识点:
记忆功能的含义:比如浏览器的回退功能;文本编辑器的撤销操纵都属于记忆功能;
而对与栈来说有LIFO特性:
例如A函数调用B函数,B函数调用C函数;
3.
解析:A
解题思路:
数组长度就是M长度, 对于循环队列来讲,要浪费一个空间用来判断队列是否已满;
满足条件有: a.能存储的元素个数为M-1 b.最终判断是否已满mod M
判断队列是否为空的两个条件:
end1 == end2为空;
end1 == (end2 + 1);
4.
解析:A
相关知识点:
比如我们的快速排序和归并排序,在递归的终止条件l是区间最左侧,r是区间最右侧;
终止条件:( l>= r) {return ;}
//在递归终止条件处进行优化;
//当区间个数较小时,采用插入排序米优化(r - l <= 15)=>采用插入排序;
尾递归是指:在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。 尾递归调用时,如果做了优化,栈不会增长,因此,无论多少次调用也不会导致栈溢出。 遗憾的是,大多数编程语言没有针对尾递归做优化。
5.
解析:C
相关知识点:
6.
解析:D
相关知识点:
用到队列的遍历为层序遍历;
前中后遍历借助的是栈;
7.
解析:C
相关知识点:
topk问题:在一组数据中找到前k个大元素;都是属于堆,优先级队列;
8.
解析:C
相关知识点:
Hash表插入操作的平均时间复杂度是O(n);
9.
解析:D
解题思路:
当两个有序的子区间个数都是n;最好的情况为第二个区间都比第一个区间大;
则只需要比较n次即可;
10.
解析:A
相关知识点:
数组的逆序:
解题思路:
总结