2016 - 2024

感恩一路有你

找出数组中最长的连续数字 算法:给定一个数组,找出最长连续子数组和为0的子序列?

浏览量:2427 时间:2021-03-11 11:29:15 作者:admin

算法:给定一个数组,找出最长连续子数组和为0的子序列?

让原始数组为a,遍历数组,并建立和序列s:s[0]=0,s[i]=s[i-1]a[i]。同时,s[i]的内容也记录i,然后s被稳定地排序。现在s可以分成许多段,每个段的数目是相同的。最长连续子阵的第一个数的下标和最后一个数的下标必须分别为一段中第一个数的I和最后一个数的I。计算每段中第一个数字的I和最后一个数字的I之差,取最大的一个。

设数组a是有n个元素的整数数组,从中找出最大和子序列?

Pascal语言不能,但是说“最大和子序列”意味着在一个数组中找到几个连续的数据,它们的和是最大的。也许我没说清楚,让我给你举个例子

例子:一个数组:2,4,-33,34,45,-23,7

数组中任意一个数的连续数据都是这个数组的子序列

34和45是和最大的子序列

所以要搜索的数组中必须有负数,否则会有负数没有最大和子序列(整个数组是最大的)

不是两个数字,而是任意长度的,找到任意长度的子序列

如果:2,4,-33,34,45,-10,12,-2

这不是真的,最大和子序列是:34,45,-10,12。理解的关键要素是:1。任意长度2。继续

让我给你一个主意。我不会为你写代码。最多只能是伪代码

首先,你需要一个能找到给定区域中所有完全平方的函数,这个函数可以被调用

int*find_uusqures(int a,int b){…

是的,它返回一个数组的指针,指向a和b之间的第一个和最小的完全平均值,长度就是找到的完整正方形。否则,它可以返回空指针。如果不能立即知道函数外数组的长度,可以使用第一位,即第0位,来记录找到的完整平方数。如果找不到,可以返回一个长度为1的数组,其中可以保存一个0。

当a和B相距较远时,此功能可能很耗时,因此有必要在本地维护一个文件以存储找到的完整正方形。这个文件的规格如下,记录从1到一个大整数n,所有记录的数目都是完全平均的顺序,不要泄露

!让我们写一个名为

平方分解(int m)

函数是用来完成指定任务的,算法在这里正式开始

!In squareuuu在分解中,打开文件并用数组x保存文件中所有完整的正方形

1。对于每个输入整数m,比较X中最大的n。

2。如果n很小,则调用find_uusquares(n,m),并将所有结果附加到X.

3。从X中的最大值中找出第一个小于m的整数,n_1,记录m_1=m-n_1和n_1。记录(有太多的记录方法,例如在文件中记录、在终端中打印或与其他返回值组合到一个数组中以返回)

4_u1如果1大于零,则递归调用square_u1;decompose(M_1;1)如果它等于零,则将x保存到文件中,不追加,然后退出。

这是一个非常快速的算法,加速的关键是保持一个完整的方桌。如果能改进求完全平方的算法,速度会更快

(c语言)查找一个数组中方差最大的连续子数组?

例如,B[i]=num,这意味着我出现num次。实现代码也非常简单。//将数组B初始化为0For(I=0i<ni){B[a[I

}。您可以直接在数组B中找到最大值,即出现的次数。下表显示了引用的值。

找出数组中最长的连续数字 最大连续子数组 php判断奇偶数

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。