我想获取一个输入数组和一组可能的大小,并将数组划分为子数组,每个子数组都有一个最大可能的bucket大小的计数,该计数小于剩余的项目数。
所以给定输入数组...
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
还有尺寸。。。
[10, 5, 3, 2, 1]
它将返回一个数组,如。。。
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [11, 12, 13], [14]]
首先是分区10,然后是分区3,然后是分区1。
我可以使用while循环等非常笨拙的方法来实现这一点,但我想知道这种算法是否有某种名称,我可以研究一些更优雅的实现方法。
您也可以在单循环中实现这一点。类似这样的东西是JS:
js prettyprint-override">var inputArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];
var sizeArray = [10, 3, 5, 2, 1];
var outputArray = [];
sizeArray.sort(function(a, b) { return b-a}); // Sort array in decreasing order
while(sizeArray.length > 0 && inputArray.length > 0){
var m = sizeArray[0];
sizeArray = sizeArray.slice(1); // Pop the first element from Size Array
if(m <= inputArray.length){
outputArray.push(inputArray.slice(0, m)); // Extract first m elements from inputArray if its size is greater than m
inputArray = inputArray.slice(m);
}
}
console.log(outputArray);
多亏了@anandudavia,我解决了这个问题,而不是作为一个数组分区练习,而是作为一个硬币兑换问题。
我能够用这个函数解决这个问题...(在斯威夫特)
func separate(numberOfItems n: Int, bucketSizes sizes: [Int]) -> [Int] {
var output = [Int]()
var remaining = n
for size in sizes {
while remaining >= size {
output.append(size)
remaining -= size
}
}
return output
}
现在,通过我的大小数组,我可以轻松地解决我正在处理的其余问题:D
我有一个db表说,在Postgres传给另一个团队,有一个列名说,。现在我试图使用PG指挥官来查询这个列名称上的表。 然后它就回来了 错误:列"first_Name"不存在 不确定我是在做一些愚蠢的事情,还是有解决这个问题的方法,我错过了?
问题内容: 我正在处理大型3D阵列,通常需要以各种方式对其进行切片以进行各种数据分析。一个典型的“立方体”可以达到〜100GB(将来可能会更大) 似乎在python中,大型数据集的典型推荐文件格式是使用HDF5(h5py或pytables)。我的问题是:使用HDF5来存储和分析这些多维数据集,而不是将它们存储在简单的平面二进制文件中,对速度或内存使用有好处吗?HDF5是否更适合表格数据,而不是像我
我已经阅读了很多关于设计分区键和排序键的DynamoDB文档,但我认为我一定缺少一些基本的东西。 如果分区密钥设计不好,那么当单个分区密钥值的数据超过10GB时会发生什么情况? “了解分区行为”部分指出: “单个分区可以容纳大约10 GB的数据” 它如何对单个分区键进行分区? http://docs.aws.amazon.com/amazondynamodb/latest/developergui
我有一个CA提供的jks密钥库,用于对JAR签名。但是,我希望通过HTTPS托管一些内部应用程序,因此需要创建一个SSL证书,以便通过HTTPS加密数据。然而,为了避免浏览器中的不可信证书/未知主机警告,我想知道是否可以使用用于签名JAR的jks密钥库也对我的CSR进行签名,以便创建SSL证书。 到目前为止,我已经设法做到了以下几点: > 使用Java keytool生成证书和私钥对以创建JKS文
问题内容: 例如: 要么 这些名称或破折号有问题吗? 问题答案: 老实说,这取决于个人开发人员和他们自己的感受。就像您建议的那样,有两种同样好的构造CSS类的方法: 它们可以达到相同的目的,但是当您开始广泛思考时,您会发现这些样式之间的差距有多大。 分离班使他们可以重复使用: 该干的惯例是从不重复自己。通过分离or类,我们可以 重用 相同的类: 在第二种方法中-使用分隔符,代码将是: 在像这样的简
问题内容: 我有一个.csv文件,如下所示: 我必须从文件中删除重复的电子邮件(整行)(即,上面示例中包含的行之一)。如何仅在字段1(用逗号分隔)上使用?根据,没有列选项。 我尝试了一些东西,但是没有用。 问题答案: 为了独特 所以逗号是定界符 对于关键字段1 测试结果: