niusouti.com
参考答案和解析
编程方法不唯一,能返回正确结果就行
更多“给定一个整数数组 nums ([-2,1,-3,4,-1,2,1,-5,4]), 用动态规划算法找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和”相关问题
  • 第1题:

    给定一个数组a(可能包含相同的数),求它有多少个不同的子序列。例如a={1,2,1,3}子序列有{1}{2}{3}{1,2}{1,3}{1,2}{1,1}{1,3}{2,1}{2,3}{1,2,1}{1,2,3}{1,1,3}{2,1,3}等。


    正确答案:

    这个题本身不难,但是分析清楚不容易。我们首先假设子序列可以为空——最后减1就好了。假设dp[i]表示数列前i项构成的不同子序列的个数。初值:dp[0]=1因为只有一个空子序列我们现在考虑dp[i]

    (1)如果数列第i项在之前没有出现过,是一个新数显然dp[i]=dp[i-1]*2这是因为前(i-1)项的子序列本身,以及添加上第i项,都是一个子序列,这是比较容易的情况。如果全是这样,人生就完美了……因为我们会推出dp[i]=2^i,但还有讨厌的第二种情况。

    (2)如果第i项在之前出现过,假设j是它最近一次出现的位置,我们有0<j<i(注意i,j都是项数,或者说下标从1开始的)那么我们直接乘以2,有些会重复。哪些重复了呢?原来的前(j-1)项的子序列末尾添加上第j项和添加上第i项是一样的,就这些是重复的。所以dp[j-1]是重复的。此时dp[i]=dp[i-1]*2-dp[j-1]最后千万别忘记答案是dp[n]-1因为我们考虑了空的子序列。还有一种分析可以不考虑空的子序列,也是类似的。

  • 第2题:

    若有定义int(*pt)[3];,则下列说法不正确的是( )。

    A)int(*pt)[3]是一个数组指针

    B)指针pt指向一个有3个整型变量的数组

    C)定义了一一个名为*pt、具有三个元素的整型数组

    D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组


    正确答案:D
    首先,pt跟*结合,所以是一个指针,所指向的对象是含有3个元素的数组。所定义的指针没加const,所以是个指针变量,还可以指向类似对象的其他元素,也就是说还可以指向其他含有3个元素的数组。

  • 第3题:

    数组中元素,用一个统一的数组名和下标来唯一地确定某个数组变量中的元素


    正确答案:正确

  • 第4题:

    当函数的返回值是数组类型的,传递的是数组第一个元素的地址。


    正确答案:正确

  • 第5题:

    当调用函数时,实参是一个数组名,则向函数传送的是()。

    • A、数组的长度
    • B、数组首地址
    • C、数组每一个元素的地址
    • D、数组每个元素的值

    正确答案:D

  • 第6题:

    假定一个数组对象为x,则x.length的值为该数组所包含元素的()。


    正确答案:个数

  • 第7题:

    当定义一个数组时,系统会在内存中为该数组分配一个存储空间,其()就是数组在内存中的首地址。

    • A、数组的最大下标
    • B、数组的名称
    • C、数组的第一个元素
    • D、数组的最后一个元素

    正确答案:B

  • 第8题:

    array_push()的作用是()

    • A、将数组的第一个元素弹出
    • B、将数组的最后一个元素弹出
    • C、将一个或多个元素压入数组的末尾
    • D、将一个或多个元素插入数组的开头

    正确答案:C

  • 第9题:

    Public conters(2 to 14)As Integer声明正确的是()

    • A、定义一个公用变量conters,其值可以是2到14之间的一个整型数
    • B、定义一个公用数组conters,数组内可存放14个整数
    • C、定义一个公用数组conters,数组内可存放13个整数
    • D、定义一个公用数组conters,数组内可存放12个整数

    正确答案:C

  • 第10题:

    单选题
    有说明语句double[,] tab=new double[3,4];那么下面叙述正确的是()。
    A

    tab是一个数组维数不确定的数组,使用时可以任意调整

    B

    tab是一个有两个元素的一维数组,它的元素初始值分别是3,4

    C

    tab是一个二维数组,它的元素个数一共有12个

    D

    tab是一个不规则数组,数组元素的个数可以变化


    正确答案: B
    解析: 暂无解析

  • 第11题:

    单选题
    array_push()的作用是()
    A

    将数组的第一个元素弹出

    B

    将数组的最后一个元素弹出

    C

    将一个或多个元素压入数组的末尾

    D

    将一个或多个元素插入数组的开头


    正确答案: C
    解析: 暂无解析

  • 第12题:

    单选题
    Public conters(2 to 14)As Integer声明正确的是()
    A

    定义一个公用变量conters,其值可以是2到14之间的一个整型数

    B

    定义一个公用数组conters,数组内可存放14个整数

    C

    定义一个公用数组conters,数组内可存放13个整数

    D

    定义一个公用数组conters,数组内可存放12个整数


    正确答案: B
    解析: 暂无解析

  • 第13题:

    若用数组名作为函数调用的实参,传递给形参的是( )。

    A、数组的首地址

    B、数组中第一个元素的值

    C、数组全部元素的值

    D、数组元素的个数


    参考答案A

  • 第14题:

    下面关于数组的说法中,错误的是( )

    A、在类中声明一个整数数组作为成员变量,如果没有给它赋值,数值元素值为空

    B、数组可以在内存空间连续存储任意一组数据

    C、数组必须先声明,然后才能使用

    D、数组本身是一个对象


    正确答案:AB

  • 第15题:

    若用数组名作为函数调用的实参,传递给形参的()。

    • A、 数组的首地址
    • B、 数组中第一个元素的值
    • C、 数组全部元素的值
    • D、 数组元素的个数

    正确答案:A

  • 第16题:

    使用split("-")方法对字符串"北京-东城区-米市大街8号-"进行分割的结果是()。

    • A、返回一个长度为4的数组
    • B、返回一个长度为3的数组
    • C、不能返回数组,因为最后一个"-"后面没有数值,代码不能执行
    • D、能够返回数组,数组中最后一个元素的数值为null

    正确答案:A

  • 第17题:

    在数组中,数组名表示()。

    • A、数组第一个元素的首地址
    • B、数组第二个元素的首地址
    • C、数组所有元素的首地址
    • D、数组最后一个元素的首地址

    正确答案:A

  • 第18题:

    若用数组名作为调用函数的实参,则传递给形参的是()

    • A、数组存储首地址
    • B、数组的第一个元素值
    • C、数组中全部元素的值
    • D、数组元素的个数

    正确答案:A

  • 第19题:

    若用数组名作为函数调用的实参,传递给形参的是()。

    • A、数组的首地址
    • B、数组中第一个元素的值
    • C、数组中的全部元素的值
    • D、数组元素的个数

    正确答案:A

  • 第20题:

    对于语句int*px[10],以下说法正确的是()。

    • A、px是一个指针,指向一个数组,数组的元素是整数型。
    • B、px是一个数组,其数组的每一个元素是指向整数的指针。
    • C、A和B均错,但它是C语言的正确语句。
    • D、C语言不允许这样的语句

    正确答案:B

  • 第21题:

    下列关于数组最值的描述中,错误的是()。

    • A、要想求数组的最值必须先定义一个数组
    • B、在求数组最值时,初始时一定要将数组中的第一个元素的值赋给变量
    • C、求数组最值过程中,一定要对数组进行遍历
    • D、在求数组最大值时,使用变量记住每次比较后较大的那个值

    正确答案:B

  • 第22题:

    单选题
    对于int *pa[5];的描述,正确的是(  )。
    A

    pa是一个指向数组的指针,所指向的数组是5个int型元素

    B

    pa是一个指向某个数组中第5个元素的指针,该元素是int型变量

    C

    pa[5]表示某个数组的第5个元素的值

    D

    pa是一个具有5个元素的指针数组,每个元素是一个int型指针


    正确答案: C
    解析:
    语句“int *pa[5]”定义一个指针数组pa,它指向一个int指针型数组,数组大小为5。

  • 第23题:

    单选题
    使用split("-")方法对字符串"北京-东城区-米市大街8号-"进行分割的结果是()。
    A

    返回一个长度为4的数组

    B

    返回一个长度为3的数组

    C

    不能返回数组,因为最后一个-后面没有数值,代码不能执行

    D

    能够返回数组,数组中最后一个元素的数值为null


    正确答案: A
    解析: 暂无解析

  • 第24题:

    单选题
    对于语句int*px[10],以下说法正确的是()。
    A

    px是一个指针,指向一个数组,数组的元素是整数型。

    B

    px是一个数组,其数组的每一个元素是指向整数的指针。

    C

    A和B均错,但它是C语言的正确语句。

    D

    C语言不允许这样的语句


    正确答案: D
    解析: 暂无解析