gpt4 book ai didi

java - 如何找到给定整数数组中最长的奇数和子数组? (以最有效的方式)

转载 作者:行者123 更新时间:2023-12-02 06:24:03 26 4
gpt4 key购买 nike

问题:你需要在给定的整数数组中找到最长的奇数子数组,但时间复杂度和空间辅助都应该是最好的。

我尝试用 while 循环和两个索引变量(low、high while(low <= high)...)遍历数组,但每次都没有得到好的答案...

我尝试过这个:(sum是数组的总和)

while (low <= high) {

if((sum - a[low]) % 2 != 0)
return (high - low);

else if((sum - a[high]) % 2 != 0)
return (high - low);

else{
if((sum - a[low]) % 2 == 0){
sum -= a[low];
low++;
}

if((sum - a[high]) % 2 == 0){
sum -= a[high];
high--;
}
}
}

对于 {2, 2, 2, 1, 1, 2, 2, 2, 2} 我预计输出为 5但我得到了 2

最佳答案

  1. 如果整个数组是奇数,那么你就明白了。
  2. 如果是偶数,则需要找到最接近数组末尾的偶数。
    • 如果这个数字接近开始,则结果是从下一个位置到结束的子数组
    • 如果这个数字接近结束,则结果是从开始到这个数字的子数组(不包括数字本身)。

关于java - 如何找到给定整数数组中最长的奇数和子数组? (以最有效的方式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55807209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com