在职业比赛中进行编码挑战,找到最小的总和分区

时间:2018-10-01 23:48:46

标签: c++ arrays

问题:

  

给出一个整数数组。找出总和最小的等分分区。   例如:a = [1、3、2、2、1、3]。一共有三个相等的分区:[(1、3),(2、2),(1、3)],[(1、3、2),(2、1、3)]和[(1、3 ,2,2,1,3)]。第一个等于最小的总和,因此返回4   请注意,您不能对输入数组重新排序。

想法:

最初,我想保持每两对,每三对等等的总和,直到剩下的唯一子数组就是数组本身。然后,我将能够使用该方法隔离最小值。虽然,我觉得这是一个不错的策略,但我对如何实现这一目标感到迷失。

有人有什么建议吗?

1 个答案:

答案 0 :(得分:1)

shutil.unpack_archive(file_path, extract_dir=extract_path)

可通过onlinegdb获得实时版本。

使用动态编程,将问题分解为子问题:

  1. 为定义大小的输入数组创建一个“分区”
  2. 计算所有分区数组的总和
  3. 检查总和是否唯一
  4. 找到最小的唯一和。