假设max\u序列(数组A):是Kadane算法的解决方案。
你有一个数组:5,-3,-4,8,-1,12,-6, 4, 4,-14, 2, 8
然后将此数组缩短为正序列和负序列的条纹:
所以现在数组是:5,-7 8,-1, 12,-6, 8,-14 10
两个数组返回的最大序列相同。
你能从数学上证明有/没有,一个整数序列(至少包含一个正整数)从函数max_sequence返回不同的输出吗?
如果max\u序列包含连续的正值子序列中的一个正值,则它包含所有连续的正值,否则它将不是最大值。[反证法]
如果max_sequence包含负值的连续子序列中的一个负值,那么它包含所有连续的负值以及封闭的正值和它们的所有正后继者或前身,否则它将不是最大值。[归约荒谬]
因此,运行长度编码版本产生与非运行长度编码版本相同的结果。
我想知道实际上是如何工作的。我认为这是一种计算数组长度的简单方法,并希望在使用它之前适当地理解它。我对指针算术不是很有经验,但根据我的理解,给出了数组第一个元素的地址。将按地址转到数组的末尾。但是不应该给出这个地址的值吗。而是打印出地址。我真的很感激你帮我把指针的东西弄清楚。 下面是我正在研究的一个简单示例:
问题内容: 例如,我们可以像这样构造一个数组: 我看到了这样的构造,但是我不明白为什么这可能有用。 问题答案: 一个例子。说,你有一个功能 获取一些文件名。想象一下,您找不到满足条件的文件名。你还回来什么?您有2个选择- 返回null 或 0大小的array 。 大小 为 0的数组 的变体更好,因为您的调用方不需要检查 NULL, 并且可以以一致的方式处理该数组-例如,在循环中(在这种情况下为空)
我在分而治之的算法上遇到了一点麻烦,正在寻找一些帮助。我试图编写一个名为sumArray的函数,它计算整数数组的和。 此函数必须通过将数组一分为二并对每一半执行递归调用来完成。我曾尝试使用类似的概念,当我编写递归和算法和分治算法来识别数组中的最大元素时,我使用了这些概念,但我很难将这两个想法结合起来。 下面是我为sumArray编写的代码,它编译,但没有返回正确的结果。
我正在设置合并排序来对数组进行排序。目标是对任意长度的数组进行排序。 我试过查看mergesort函数,但没有发现任何问题。排序适用于某些数组长度,无论是奇数还是偶数,但对于数组长度,例如长度为10,我得到了一个上界异常。
如果你以前遇到过这些问题,请给我一些建议。 提前感谢!
问题内容: 我声明了一个数组,如下所示: 然后,我为数组分配了以下值: 然后,我声明并初始化了一个整数变量: 这对于查找实际大小将很有用,但是有什么方法可以找到数组的逻辑大小吗? 问题答案: 它包含分配的大小。未分配的指标将包含默认值,即对。