我们有 N 组整数 A1, A2, A3 ... An。找到一种算法,该算法返回一个列表,该列表包含每个集合中的一个元素,其属性是列表中最大元素和最小元素之间的差异最小
例子:
IN: A1 = [0,4,9], A2 = [2,6,11], A3 = [3,8,13], A4 = [7,12]
OUT: [9,6,8,7]
我对这个练习有一个想法,首先我们需要对一个列表中的所有元素进行排序(每个元素都需要分配给它的集合),所以有了这个输入,我们得到了:
[[0,1],[2,2],[3,3],[4,1],[6,2],[7,4],[8,3],[9,1],[11,2],[12,4],[13,3]]
稍后我们创建所有可能的列表并找到具有最小和最大元素之间差异的这个列表,并像这样返回正确:[9,6,8,7]
我是 ocaml 的新手,所以我对编码这些东西有一些疑问:
- 我可以创建一个带有 N(无限数量)参数的函数吗?
- 我应该创建一个新类型,比如对列表来实现假设吗?
对不起我的英语不好,希望你能理解我想表达的意思。