【发布时间】:2017-01-05 19:19:52
【问题描述】:
我有一件奇怪的事情要做,但我不知道如何开始
我从这个变量开始
var base = [1,1,1,2,3,5,7,9,14,19,28,40,56,114,232,330];
var sky = [0,0,0,3,4,5,6,7,8,9,10,11,12,14,16,17];
var ite = [64,52,23,38,13,15,6,4,6,3,2,1,2,1,1,1];
所以要开始所有3个数组的长度相同,第一个操作是查看天空数组中是否有重复值,在这种情况下,0是重复的,只有在这种情况下才在末尾,但是天空阵列一直被排序。因此,我必须从天空中删除所有重复项(在本例中为 0),并从基础中删除相应的项目,并对 ite 上的相应项目求和。所以如果位置 4,5 有重复,我必须操纵这个条件。但是让我们看看新的 3 数组:
var new_base = [1,2,3,5,7,9,14,19,28,40,56,114,232,330];
var new_sky = [0,3,4,5,6,7,8,9,10,11,12,14,16,17];
var new_ite = [139,38,13,15,6,4,6,3,2,1,2,1,1,1];
如果你看到 new_ite 有 139 而不是 64,52,23,即 64+52+23 的总和,因为天空上的前 3 个项目是相同的 (0),所以我从 base 中删除了两个相应的值还有天空,我将相应的值加到 new_ite 数组中。
有快速的方法吗?我想到了一个 for 循环,但我坚持在第一个 for (i = 0; i
J
【问题讨论】:
-
时间在这方面重要吗?它会被用在巨大的阵列上吗?是否存在内存限制(我们可以复制数组以快速排序吗?)?
-
您必须使用这些提供的数组吗?或者你能改变这些数组的存储和表示方式吗?如果这些数组确实以您所描述的方式彼此相关,那么拥有一个对象数组可能更有意义,并且每个对象都有一个基础值、天空值和 ite 值。
-
数组总是预排序的吗?
-
@Grallen arr sky 和 base 总是排序的,性能对我来说很重要,但不是很大的数组,最多可能 100 或 200 个项目。对于我可以复制的 tj-rockefeller,这些数组彼此相关,但填充了 3 个不同的操作和部分代码。
标签: javascript arrays