当前位置: 首页 > 知识库问答 >
问题:

使和为奇数的最大子数组和

娄德运
2023-03-14

给定一个整数数组,我必须找到具有最大和的子数组,使得和是奇数。

但是我怎么把它扩展到和是奇数。

编辑

数组的所有元素都是整数和正数

共有1个答案

马正初
2023-03-14

似乎您并不要求它是连续的(从您的示例来看)。这要简单得多,只要取所有正元素,如果和是奇数-你就完成了。如果是偶数--删除最低的正奇元素,或者添加最高的奇负元素(这样做更好,它只取决于abs(highest_negative_odd)lowest_positive_odd)。

伪代码:

  • 和<-所有正元素的和
  • 如果和是奇数,则返回相关的子数组
  • x<-最高负奇元素
  • Y<-最低正奇元素
  • 如果abs(x)
  • sum<-sum+x//将x添加到子数组
    null
 类似资料:
  • 我试图在一个数组中找到具有最大和的邻接子数组。所以,对于数组 {5,15,-30,10,-5,40,10}

  • 给出了一个由N个整数组成的数组。 数组的最大和是该数组的非空连续子数组的元素的最大和。 例如,数组[1,-2,3,-2,5]的最大和是6,因为子数组[3,-2,5]的和是6,并且不可能实现更大的子数组和。 现在,您只能从给定数组中删除一个以上的元素。这样做可以得到的结果数组的最大可能最大和是多少? 我正在用我自己的测试用例测试我的代码。我在Dev-C++上得到了正确的输出。但是当我在网上测试我的代

  • 很抱歉发了这么长的帖子,但我不明白我做错了什么。感谢您事先的帮助! 这里是当前面提到的列表作为输入给出时的输出,我已经经历并查看了每一个步骤,列表中的每一个消除在我看来都是合乎逻辑的,我不知道一个人怎么会以结束和105结束。如果有人能帮我理解,我会非常感激的!

  • 我最近遇到一个问题如下。

  • 我需要找到总和大于或等于< code>k的最小子阵列长度。数组将只有正数。 例如 输入:< code>target = 7,< code>nums = [2,3,1,2,4,3]输出:2说明:子数组[4,3]在问题约束下长度最小。 在我的代码中,对于输入:< code>target = 7,< code>nums = [2,3,1,2,4,3]我得到的答案是< code>3,但正确答案是< cod

  • 我有一个问题,给你两个数组,比如: 这意味着第一个数组中有5个数字,第二个数组中有3个数字。第二行是第一个数组,第三行是第二个数组。这个程序的目标是将第二个数组中的数字插入第一个数组(可以分开),从而使组合数组的所有位置都是奇数(第一、第三、第五……)数字加起来就是可能的最大数字。上述问题的输出示例: 既然阵列变成了 我试图利用第一个数组中的差异,通过 并找到差异最大的地方在第二个数组中插入数字。