给定一个整数数组 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的指针变量,它可以指向每行有三个整数元素的二维数组
第3题:
数组中元素,用一个统一的数组名和下标来唯一地确定某个数组变量中的元素
第4题:
当函数的返回值是数组类型的,传递的是数组第一个元素的地址。
第5题:
当调用函数时,实参是一个数组名,则向函数传送的是()。
第6题:
假定一个数组对象为x,则x.length的值为该数组所包含元素的()。
第7题:
当定义一个数组时,系统会在内存中为该数组分配一个存储空间,其()就是数组在内存中的首地址。
第8题:
array_push()的作用是()
第9题:
Public conters(2 to 14)As Integer声明正确的是()
第10题:
tab是一个数组维数不确定的数组,使用时可以任意调整
tab是一个有两个元素的一维数组,它的元素初始值分别是3,4
tab是一个二维数组,它的元素个数一共有12个
tab是一个不规则数组,数组元素的个数可以变化
第11题:
将数组的第一个元素弹出
将数组的最后一个元素弹出
将一个或多个元素压入数组的末尾
将一个或多个元素插入数组的开头
第12题:
定义一个公用变量conters,其值可以是2到14之间的一个整型数
定义一个公用数组conters,数组内可存放14个整数
定义一个公用数组conters,数组内可存放13个整数
定义一个公用数组conters,数组内可存放12个整数
第13题:
若用数组名作为函数调用的实参,传递给形参的是( )。
A、数组的首地址
B、数组中第一个元素的值
C、数组全部元素的值
D、数组元素的个数
第14题:
下面关于数组的说法中,错误的是( )
A、在类中声明一个整数数组作为成员变量,如果没有给它赋值,数值元素值为空
B、数组可以在内存空间连续存储任意一组数据
C、数组必须先声明,然后才能使用
D、数组本身是一个对象
第15题:
若用数组名作为函数调用的实参,传递给形参的()。
第16题:
使用split("-")方法对字符串"北京-东城区-米市大街8号-"进行分割的结果是()。
第17题:
在数组中,数组名表示()。
第18题:
若用数组名作为调用函数的实参,则传递给形参的是()
第19题:
若用数组名作为函数调用的实参,传递给形参的是()。
第20题:
对于语句int*px[10],以下说法正确的是()。
第21题:
下列关于数组最值的描述中,错误的是()。
第22题:
pa是一个指向数组的指针,所指向的数组是5个int型元素
pa是一个指向某个数组中第5个元素的指针,该元素是int型变量
pa[5]表示某个数组的第5个元素的值
pa是一个具有5个元素的指针数组,每个元素是一个int型指针
第23题:
返回一个长度为4的数组
返回一个长度为3的数组
不能返回数组,因为最后一个-后面没有数值,代码不能执行
能够返回数组,数组中最后一个元素的数值为null
第24题:
px是一个指针,指向一个数组,数组的元素是整数型。
px是一个数组,其数组的每一个元素是指向整数的指针。
A和B均错,但它是C语言的正确语句。
C语言不允许这样的语句