【无标题】

牛客刷题记录

  • 错题
    • Java 只能输入零和非零开头的数字,正确的正则表达式是:^(0|[1-9][0-9]*)$
    • 在一个有8个int数据的数组中,随机给出数组的数据,找出最大和第二大元素一定需要进行(9)次比较:
    • Which statement declares a variable a which is suitable for referring to an array of 50 string objects? 在java 中,声明一个数组时,不能直接限定数组长度,只有在创建实例化对象时,才能对给定数组长度.。
    • 数组Q[0..m-1]用来表示一个循环队列, 用front指向队头元素,rear指向队尾元素的后一个位置 ,则当前队列中的元素数是。(队列总的元素数不会超过队列大小)
    • 以下哪个选项正确定义了一维数组
    • 将数组 var a=[1,2,3] 变成数组 [4,3,2,1] 下面的方式正确的是:
    • 对于不同的特殊矩阵应该采用不同的存储方式,这样的说法正确。
    • 在32位机器上,char str[]="Hello", sizeof(str) = ()
  • 争议题
    • c++当中,以下数组定义中错误的是

错题

Java 只能输入零和非零开头的数字,正确的正则表达式是:^(0|[1-9][0-9]*)$

Java里的正则表达式是^\d+(.\d+)?

  • ^ 定义了以什么开始
  • \d+ 匹配一个或多个数字
  • ? 设置括号内的选项是可选的
  • \. 匹配 “.”
  • $表示结束
  • 可以匹配的实例:“5”, “1.5” 和 “2.21”。

所以题目里面就是:开始 0或者1-9+n*(0-9)结束 (n可以是0)
Java 提供了 java.util.regex 包,它包含了 Pattern 和 Matcher 类,用于处理正则表达式的匹配操作。

在一个有8个int数据的数组中,随机给出数组的数据,找出最大和第二大元素一定需要进行(9)次比较:

8个原始两两比较:4次
4个大的两两比较:2次
2个大的两两比较:1次
假设最坏的情况,次大数第一次就被比下去了:比如A是最大,B是次大。
(AB)(CD)(EF)(GH) 第一次里最大A和次大B分到一组了。
所以B要和CDEFGH比较。
根据之前的:CD最大知道,EFGH最大知道。
所以再比2次:B和CD,B和EFGH.
4+2+1+2 = 9次。

Which statement declares a variable a which is suitable for referring to an array of 50 string objects? 在java 中,声明一个数组时,不能直接限定数组长度,只有在创建实例化对象时,才能对给定数组长度.。

数组Q[0…m-1]用来表示一个循环队列, 用front指向队头元素,rear指向队尾元素的后一个位置 ,则当前队列中的元素数是。(队列总的元素数不会超过队列大小)

(rear-front+m)% m:因为是循环链表 rear不一定就比front地址高 所以有可能rear-fornt得到结果是负数 所以为了正确性起见需要+m再%m

以下哪个选项正确定义了一维数组

char a[] = {‘0’, ‘1’, ‘2’, ‘3’, ‘\0’}; \0代表转译为字符

将数组 var a=[1,2,3] 变成数组 [4,3,2,1] 下面的方式正确的是:

a.push(4); a.reverse() 还有a.reverse().unshift(4)
Array对象常用方法中:
不改变原数组:

  • concat()
    连接两个或多个数组
    不改变原数组
    返回被连接数组的一个副本
  • join()
    把数组中所有元素放入一个字符串
    不改变原数组
    返回字符串
  • slice()
    从已有的数组中返回选定的元素
    不改变原数组
    返回一个新数组
  • toString()
    把数组转为字符串
    不改变原数组
    返回数组的字符串形式
    改变原数组:
  • pop()
    删除数组最后一个元素,如果数组为空,则不改变数组,返回undefined
    改变原数组
    返回被删除的元素
  • push()
    向数组末尾添加一个或多个元素
    改变原数组
    返回新数组的长度
  • reverse()
    颠倒数组中元素的顺序
    改变原数组
    返回该数组
  • shift()
    把数组的第一个元素删除,若空数组,不进行任何操作,返回undefined
    改变原数组
    返回第一个元素的值
  • sort()
    对数组元素进行排序(ascii)
    改变原数组
    返回该数组
  • splice()
    从数组中添加/删除项目
    改变原数组
    返回被删除的元素
  • unshift()
    向数组的开头添加一个或多个元素
    改变原数组
    返回新数组的长度

对于不同的特殊矩阵应该采用不同的存储方式,这样的说法正确。

特殊矩阵中元素有规律,采用数组存储。而像稀疏矩阵中元素没有规律,所以一般采用三元组或者伪地址表示法~

在32位机器上,char str[]=“Hello”, sizeof(str) = ()

实际存储为{‘H’,‘e’,‘l’,‘l’,‘o’,‘\0’},所以是6个

争议题

c++当中,以下数组定义中错误的是

答案int x[2][3] = {{1,2},{3,4},{5,6}};
我的int x[][3] = {0};**
正确答案行列写反了,但是C++里可以这样写:int[][3] = {0}?其他语言应该不行。

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