【发布时间】:2021-01-12 15:45:01
【问题描述】:
我正在尝试解决一个问题,该问题需要一个大小为 n 的数组,并在数组中找到具有偶数和的最长数字范围。
例如,对于数组:[2,3,1,8,4,7,2],将返回值 5,因为前五个数字的范围是求偶数的最长范围。
我得到了一个有效的算法,但这是我正在寻找的奖励。 请求是仅从数组的值中读取一次且仅一次。
我的解决方案包括对整个数组求和,然后从头到尾找到最大长度,然后从头到尾。 但这是读取数组 3 次。
你能指导我正确的方向吗?谢谢!
【问题讨论】:
-
你要我写给你还是解释一下怎么做?
-
我想要一个解释,一种伪代码。我一直在考虑找到数组中的第一个奇数,保存它的索引并计算其余的奇数。我的方向正确吗?
-
@EatayMizrachi 这就是我要做的。要么总和是偶数,要么你需要去掉一个奇数。所以确实在数组上循环一次,并保留第一个奇数的索引。还要保留最后一个奇数的索引。如果最后一个奇数更接近结尾,则删除该数字以及之后的所有偶数。
-
@MrSmith42 我只是想让你知道,当我说奖金时,很容易误解我在做什么。这个作业没有评分,这是一个奖励,因为找到答案是一个更大的挑战。如果你注意到的话,我还添加了一条评论,询问我的方向是否正确。
-
@iota 非常感谢您的详尽解释。 :)