繁体   English   中英

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

[英]How To Find The Longest Odd Sum Sub-Array In A Given Integer Array? (In The Most Efficient Way)

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

我试过用一个while循环遍历数组和两个索引变量(低,高而(低<=高)......)但我每次都没有得到好的答案......

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

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. 如果它是偶数你需要找到最接近数组末尾的偶数。
    • 如果此数字接近开始,则结果是从下一个位置到结束的子数据
    • 如果这个数字接近结束,则结果是从开始到该数字的子数据(不包括数字本身)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM