牛客刷题 --- 一周错题总结(数组类)

牛客刷题 --- 一周错题总结(数组类)_第1张图片
答案:c
解答:数组a比数组b大很多,可能跨更多的页,缺页率高或者缓存命中更低,所以pb快

2.

牛客刷题 --- 一周错题总结(数组类)_第2张图片答案:b
解答:本题A[5,8]以列为主,该元素处于第八列,前七列是满的每列8个元素,该元素处于第五行,他的前一个元素A[4,8]的结束地址就是所求的开始,最后,每个元素占3。所以有公式:(7*8+4)*3

3.

牛客刷题 --- 一周错题总结(数组类)_第3张图片
答案:c
解答:java中数组左边的定义部分是不能出现常数表达式的 所以BD语法错误。 但是这题是c/c++的题目,C中如果不使用指针,左边括号须有常数,否则右边必须有具体数组。所以c语法错误。

4.

牛客刷题 --- 一周错题总结(数组类)_第4张图片
答案:b
解答:数组可以直接通过下标得到存储的值 因此支持随机,访问链表是链式存储结构时无法支持随机访问,要访问一个指定位置的元素必须从头开始做指针移动。哈希表支持直接通过关键码得到值 其实数组就是一种哈希表 下标就是关键码 通过下标直接得到值 因此哈希表肯定需要做范围检查也有办法做范围检查的

5.

牛客刷题 --- 一周错题总结(数组类)_第5张图片答案:d
解答:首先a有m列,a[i][j]表示该元素在i行j列,i*m表示0至i-1行共有几个元素,再加上第i行的j个元素,由于是从a[0][0]算起,再加上1就是a[i][j]所在位置

6.

牛客刷题 --- 一周错题总结(数组类)_第6张图片
答案:b
解答:线性表可以分顺序存储和链式存储。

7.

牛客刷题 --- 一周错题总结(数组类)_第7张图片答案:a
解答:33-3=30,类似蚂蚁的问题,碰撞后理解为身体都穿过去了。

8.

牛客刷题 --- 一周错题总结(数组类)_第8张图片答案:b
解答:Java中允许先定义二维数组的外层长度

9.

牛客刷题 --- 一周错题总结(数组类)_第9张图片
答案:a
解答:线性表有两种存储结构:
1.顺序存储结构—顺序表。顺序表以数组形式出现,可以取任意下标访问,所以是一种随机存取的存储结构。
2.链式存储结构—链表。链表以链表的形式出现,必须从头开始访问,所以是一种顺序存取的存储结构。

10.

牛客刷题 --- 一周错题总结(数组类)_第10张图片答案:c
解答:2、3、5的最小公倍数是30。[ 1, 30]内符合条件的数有22个。如果能看出[ 31, 60]内也有22个符合条件的数,那问题就容易解决了。也就是说,这些数具有周期性,且周期为30。第1500个数是:1500/22=68 1500%68=4。也就是说:第1500个数相当于经过了68个周期,然后再取下一个周期内的第4个数。一个周期内的前4个数:2,3,4,5。故,结果为68*30=2040+5=2045

11.

牛客刷题 --- 一周错题总结(数组类)_第11张图片答案:b,c,d
解答:
a、数组是能被Object 一切能被Obj 接收的均为对象;
b、数组不是原生类 原生类有8种, int double boolean float byte short long char ;
c、语法错误、
d、数组的大小一开始就已经确定了 int[]test=new test[2];

12.

牛客刷题 --- 一周错题总结(数组类)_第12张图片答案:c
解答:
A,链式存储情况下不一致
B,优劣要看使用情况
D,二维数组是顺序存储的线性表,元素就是线性表中的元素

13.

牛客刷题 --- 一周错题总结(数组类)_第13张图片
答案:a,c,d
解答:
1.list 底层数据结构为双向链表,支持快速增删
2.vector 底层数据结构为数组,支持快速随机访问
3.map 底层数据结构为红黑树,除了hashmap无序,其他实现结构有序,不重复
4.set 底层数据结构为红黑树,除了hashset无序,其他实现结构有序,不重复

14.

牛客刷题 --- 一周错题总结(数组类)_第14张图片
答案:c
解答:二维数组初始化可以省略第一维长度, 第二维不可省

15.

牛客刷题 --- 一周错题总结(数组类)_第15张图片答案:a,c,e
解答:
A选项,如果是数组只要遍历一半元素就可以了,翻转的思想类似于字符串逆序,但链表如果要完成逆序,就算只是修改指针也要把所有的元素遍历完,所以相比而言数组还是比链表快的。
B链表只需插入一个节点,数组需移动n个元素
C选项的访问中间节点,数组可以通过array[length/2]访问,链表需要依次查找到中间节点。
D头结点都一样
E 数组是顺序存储的线性表,相对于链表而言主要的优点就是可以通过下标随机访问数组中的任意元素。

16.

牛客刷题 --- 一周错题总结(数组类)_第16张图片答案:a,b
解答:顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式LOC(ai)=LOC(a1)+(i-1)L计算得到,从而实现了随机存取。对于链式存储结构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。

17.

牛客刷题 --- 一周错题总结(数组类)_第17张图片答案:a
解答:队列的队长=(rear-front+queue)%queue

18.

牛客刷题 --- 一周错题总结(数组类)_第18张图片
答案:c,d
解答:
1.定义一维数组时,必须显式指明数组的长度;
2. 定义多维数组时,其一维数组的长度必须首先指明,其他维数组长度可以稍后指定;
3. 采用给定值初始化数组时,不必指明长度;
4. “[]” 是数组运算符的意思,在声明一个数组时,数组运算符可以放在数据类型与变量之间,也可以放在变量之后。

你可能感兴趣的:(数据结构)