当每个块的总和大致相等时,如何将数组分成两个块?
>>> foo([10, 1, 1, 1])
[[10], [1, 1, 1]]
>>> foo([2, 5, 9, 5, 1, 1])
[[2, 5], [9, 5, 1, 1]]
>>> foo([9, 5, 5, 8, 2, 2, 18, 8, 3, 9, 4])
[[9, 5, 5, 8, 2, 2], [18, 8, 3, 9, 4]]
>>> foo([17, 15, 2, 18, 7, 20, 3, 20, 12, 7])
[[17, 15, 2, 18, 7], [20, 3, 20, 12, 7]]
>>> foo([19, 8, 9, 1, 14, 1, 16, 4, 15, 5])
[[19, 8, 9, 1], [14, 1, 16, 4, 15, 5]]
像这样:
def foo(lst):
total_sum = sum(lst)
i = 1
while sum(lst[:i]) < total_sum / 2: # iterate over the list slices until we hit the "middle"
if sum(lst[:i+1]) >= total_sum / 2: # also make sure that we won't go further
break
i += 1
return [lst[:i], lst[i:]]
测试:
[[10], [1, 1, 1]] # 10 + 3
[[2, 5], [9, 5, 1, 1]] # 7 + 16
[[9, 5, 5, 8, 2, 2], [18, 8, 3, 9, 4]] # 31 + 42
[[17, 15, 2, 18, 7], [20, 3, 20, 12, 7]] # 59 + 62
[[19, 8, 9, 1], [14, 1, 16, 4, 15, 5]] # 37 + 55
我想检查是否可以将一个数组拆分为具有相同和的连续子数组。拆分数组还意味着删除数组的边框元素。 例如,要将其拆分为3个部分,我们需要删除到元素 通过删除这2个元素,就有3个相同和的连续子数组,和。 因此,如果可以将数组拆分为3个部分(等和)并删除它们之间的边界,则应返回true,否则应返回false。 返回的示例是。因为删除2个元素后,它将有4个元素,这些元素不能分组为3个相等的和 我不知道如何处理
我想把一个数分解成一个大小尽可能接近的数元组,其乘积就是初始数。输入是我们想要的因子数和所需因子数。 对于双因子情况(),寻找小于平方根的最大因子就足够了,所以我可以做这样的事情 所以用调用它将导致。 我意识到,这些数字“在大小上彼此接近”意味着什么,存在一些模糊性。我不介意这被解释为最小化∑(x\u I-x\u avg)或∑(x\u I-x\u avg)^2或其他类似的东西。 对于m==3的情况
基本上,我要问的是给定一个正方形2D阵列和一个有效的补丁大小(2D子阵列的大小),我将如何做到这一点。最终,我不需要以任何方式存储子阵列,我只需要找到每个子阵列的中值并将它们存储在一个一维阵列中。中值和存储到新阵列对我来说很简单,我只是不知道如何处理原始2D阵列并正确拆分它。我已经尝试了几次,但一直出现越界错误。我有一个4x4: 我需要像这样拆分它 < code>[1,2] [3,4] [2,3]
问题内容: 假设我有一个如下所示的Javascript数组: 什么方法适合将数组分块(拆分)为更小的数组,最多可以有10个元素? 问题答案: 该array.slice方法可以从一开始,中间,或自己需要的任何目的数组的结束提取切片,在不改变原来的数组。
我有一个具有相同键值uid的多维数组。我想把它转换成子数组通过限制Foreachloop.you可以看到两个uid有值100和两个uid有值5465 我想得到这样的阵列。 我可以不使用foreach循环得到结果吗?
问题内容: 想象一下,我有一个这样的JS数组: 我想要的是将该数组拆分为N个较小的数组。例如: 对于Python,我有这个: 对于JS,我可以提出的最佳解决方案是递归函数,但我不喜欢它,因为它既复杂又丑陋。这个内部函数返回一个像这样的数组[1,2,3,null,4,5,6,null,7,8],然后我必须再次循环并手动拆分它。(我的第一次尝试是返回此:[1、2、3,[4、5、6,[7、8、9]]],