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
Arrays 如果已定义零件数M,则返回数组A的所有可能切割_Arrays_Algorithm - Fatal编程技术网

Arrays 如果已定义零件数M,则返回数组A的所有可能切割

Arrays 如果已定义零件数M,则返回数组A的所有可能切割,arrays,algorithm,Arrays,Algorithm,我试图用Codibility为面试做准备,我提出了一个问题,这个问题不是Codibility任务,我不知道如何编写算法来给出解决方案。我知道这听起来像是大学作业,但可悲的是,那些日子对我来说已经一去不复返了,我们从来没有过这样复杂的算法,所以我没有同事来寻求解决方案,这就是为什么我要请你们来这里 我最熟悉javascript,但任何语言都可以 任务: 假设您有一个输入长度为N的输入数组,您有 同时输入数字M,它定义了需要进行的阵列切割的数量 有目标是恢复所有可能的削减 N/M我肯定存在更有效的算

我试图用Codibility为面试做准备,我提出了一个问题,这个问题不是Codibility任务,我不知道如何编写算法来给出解决方案。我知道这听起来像是大学作业,但可悲的是,那些日子对我来说已经一去不复返了,我们从来没有过这样复杂的算法,所以我没有同事来寻求解决方案,这就是为什么我要请你们来这里

我最熟悉javascript,但任何语言都可以

任务:

假设您有一个输入长度为N的输入数组,您有 同时输入数字M,它定义了需要进行的阵列切割的数量 有目标是恢复所有可能的削减


N/M我肯定存在更有效的算法,但我会这样做

它应该经历所有可能的第一次切割,并在给定第一次切割的情况下,递归所有未来切割。
如果不允许空切割,请将第3行中的0更改为1,以便切割必须至少包含一个元素。

您不允许空零件,是吗?例如[1,2,3,4]]分区不正确吗?我不允许空部分。您是否有比发布的更有效的解决方案?与我们分享您的想法。别指望我们能解决你的问题。你在哪里卡住了?便利提示:要格式化代码块,要么缩进整个代码块的4个空格,要么选择代码并点击ctrl-k或编辑框顶部的{}图标,这将自动插入4个空格。看见
def findAllCuts(array,length,cuts):
    cuts = []
    for i in range(0,length-cuts):
        cut = array[:i]
        subCuts = findAllCuts(array[i:],length-i,cuts-1)
        for j in range(len(subCuts)):
            cuts.add(cut+subCuts[j])
    return cuts