我正在为即将到来的求职面试练习算法,但我在正确实现这个算法时遇到了问题。我也在努力使效率最大化。以下是问题所在:
最大限度地提高销售金属棒业务的利润。如果你卖出N根长度为L的金属棒,你会得到N*L* metal_price。剩下的较小的金属棒将被丢弃。要切割金属棒,您需要为每一次切割支付cost_per_cut。你能获得的最大利润是多少?
constraints:
lengths will be 1 to 50 elements, inclusive.
each element of length will lie in range [1,10000]
1 <= metal_price,
因此,我有一个学校计划(在Dr.Racket环境下工作),下面是一个短期的项目(请注意,我没有要求你们中的任何人为我做功课)。
我有两个列表:一个是6个或更多的字符,另一个是3个字符。
我们要做的就是把它们结合在一起,让它们看起来像这样:
List 1: (1 2 3 4 5 6 7 8)
List 2: (a b c)
对此:
(1 a 2 b 3 c 4 5 c 6 b 7 a 8)
现在,我对如何做到这一点有了一个想法,这涉及到“切割”它的部分,然后用相反的方法把它们放回原处,然后用反字来“附加”字母。
不过,我的问题是:我创建了一个函数,该函数应该将2个列表构造为一个,但它不起作用,并
如何从第1行中只删除abcd11.gmail.com和*test1:,从第2行中移除abcd14.gmail.com和*fortest2:,从下面从第2行中移除abcd19.gmail.com和*asatesteg:,使其余部分保持原样?我有上千行像这样的文件:
May 23 03:44:02 abcd11.gmail.com x.x.x.x.x: *test1: May 23 04:46:21.032: #TEST1_ENTRY:4105 THIS is a test1
May 23 03:44:02 abcd14.gmail.com x.x.x.x.x: *fortest2: Ma
我有以下测试脚本:
function test(){
var x = 0.1 * 0.2;
document.write(x);
}
test();
这将打印结果,0.020000000000000004而应该只是打印0.02(如果你使用你的计算器)。据我了解这是由于浮点乘法精度的错误。
有没有人有一个很好的解决方案,以便在这种情况下我得到正确的结果0.02?我知道有这样的函数,toFixed或者四舍五入也是另外一种可能性,但是我真的希望把整个数字打印出来,而不用切割和舍入。只是想知道你们中的一个是否有一些漂亮,优雅的解决方案。
当然,否则我会轮到10个左右的数字。