Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找数组中最长的偶数和_Java_Algorithm_Loops - Fatal编程技术网

Java 查找数组中最长的偶数和

Java 查找数组中最长的偶数和,java,algorithm,loops,Java,Algorithm,Loops,我试图解决一个问题,这个问题需要一个大小为n的数组,并找到数组中具有偶数和的最长数字范围 例如,对于数组:[2,3,1,8,4,7,2],将返回值5,因为前五个数字的范围是构成偶数和的最长范围 我有一个有效的算法,但这是我期待进入的奖金。 请求只读取数组的值一次,并且仅读取一次 我的解决方案包括对整个数组求和,然后从头到尾找到最大长度,然后从头到尾找到最大长度。 但这会读取数组3次 你能给我指一下正确的方向吗?谢谢 两个奇数之和为偶数,两个偶数之和为偶数,因此子阵列具有偶数和的充要条件是奇数的偶

我试图解决一个问题,这个问题需要一个大小为n的数组,并找到数组中具有偶数和的最长数字范围

例如,对于数组:[2,3,1,8,4,7,2],将返回值5,因为前五个数字的范围是构成偶数和的最长范围

我有一个有效的算法,但这是我期待进入的奖金。 请求只读取数组的值一次,并且仅读取一次

我的解决方案包括对整个数组求和,然后从头到尾找到最大长度,然后从头到尾找到最大长度。 但这会读取数组3次


你能给我指一下正确的方向吗?谢谢

两个奇数之和为偶数,两个偶数之和为偶数,因此子阵列具有偶数和的充要条件是奇数的偶数。因此,我们可以通过跟踪第一个奇数的索引、最后一个奇数的索引和奇数的数目来找到答案。如果奇数为偶数,则整个数组的和为偶数。否则,我们可以从第一个奇数加上1的索引到数组的末尾得到子数组的最大长度,并从数组的前面得到比奇数的最后一个索引小1的子数组。这些子阵列都是最大的,具有偶数个奇数,因为每个子阵列中排除了一个奇数

函数longestEven(arr){
设firstOdd=-1,
lastOdd=-1,
oddCount=0;
for(设i=0;ilog(longestEven([2,3,1,8,4,7,2])