Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
Python 将阵列划分为N个连续子阵列的程序,使每个子阵列的总和为奇数_Python_Arrays_Algorithm - Fatal编程技术网

Python 将阵列划分为N个连续子阵列的程序,使每个子阵列的总和为奇数

Python 将阵列划分为N个连续子阵列的程序,使每个子阵列的总和为奇数,python,arrays,algorithm,Python,Arrays,Algorithm,这个问题给出了两个输入:数组(arr)和由它生成的子数组数的次数(n)。子阵列的总和应为奇数 很明显,如果所有的数字都是偶数。奇数和子数组是不可能的。对于奇数和,连续2个数应为奇数+偶数或偶数+奇数。但我似乎不能把它们分成N个子数组。请帮我解释一下逻辑 我可能完全错误的逻辑。我似乎无法掌握它的窍门。从数组的第一个元素开始。使用变量cur_sum跟踪当前总和。迭代数组,直到cur_sum变为奇数,成为第一个子数组。然后使cur_sum=0并开始迭代剩余的数组。一旦得到(n-1)这样的子数组,就必须

这个问题给出了两个输入:数组(arr)和由它生成的子数组数的次数(n)。子阵列的总和应为奇数

很明显,如果所有的数字都是偶数。奇数和子数组是不可能的。对于奇数和,连续2个数应为奇数+偶数或偶数+奇数。但我似乎不能把它们分成N个子数组。请帮我解释一下逻辑


我可能完全错误的逻辑。我似乎无法掌握它的窍门。

从数组的第一个元素开始。使用变量
cur_sum
跟踪当前总和。迭代数组,直到
cur_sum
变为奇数,成为第一个子数组。然后使cur_sum=0并开始迭代剩余的数组。一旦得到(n-1)这样的子数组,就必须检查剩余元素之和是否为奇数(然后成为第n个子数组),如果不是,就不可能了。

在第一个n之后分割数组− 1个奇数,然后测试最后一个子数组的总和是否为奇数。例如,对于n=3,数组{1 | 2 3 | 5 7 9}可以被除;{1 | 2 4 6}的奇数太少,{1 | 3 | 5 7}的最后一个子数组有一个偶数和,对拆分的重新排列不能改变这一点。还是我遗漏了什么?没错。最后一个子阵是一场50比50的比赛。总和可以是偶数或奇数。难道没有什么东西可以有效地减少这种情况吗。谢谢你的回答。如果你只是想知道这是否可能。然后计算奇数的数量,让它成为
oddCount
,并让
x=oddCount-(n-1)')。如果“x>0”和
x`为奇数,则可能为奇数,否则为奇数。