问题标签 [array-algorithms]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
40 浏览

loops - 优化/重新设计这个java代码

伙计们。
我需要有关使用设计模式(或类似的)决策的帮助或建议:拥有一个应用程序,通过 EJB 在 weblogic 上运行。应用程序的一部分处理非常大的对象数据集(数万或数十万)并构造一个由几个部分组成的 xml 文件。

生成的 XML 类似于:

问题是每个“section_i”都是通过应用程序在这个大数据集上循环并在编写实际的 xml 之前对它们进行一些操作来构建的。我无法控制操作,他们要留下来。但是由于每个部分都是按顺序完成的 - 一个接一个,每次列表都从头到尾遍历。我正在考虑制作这个多线程 - 即指定一个线程来创建 xml 的每个部分。但对性能有疑问。使用现有系统需要很长时间,但最终会完成。如果我转向多线程,我担心在运行其他应用程序的服务器上这会产生其他问题。是否有任何已知模式可以解决此类问题?我试图将 ArrayList 的使用更改为哈希表示的集合,但这加快了查找速度,而不是遍历时间。有什么建议吗?有人知道要检查的任何资源吗?

0 投票
1 回答
188 浏览

c++ - 容器复杂性

因此我有一个std::set<int>std::list<int>
我想让我的容器分类。
对于集合,我将具有类似于插入元素O(nlogn)的复杂性。 对于列表,我将具有复杂性,例如插入元素 +调用。 在这两种情况下,复杂性都是,但在 的情况下还有额外的操作。我有一些固定的时间来重新平衡。n
O(n)nO(nlogn)list::sort
O(nlogn)O(n)std::listset

问题来了,哪个容器运行得更快?

0 投票
2 回答
1256 浏览

algorithm - 技能集匹配算法

我在一次采访中被问到这个问题。

我一直试图为这个问题找到一个优雅的算法,但一直没能做到。

给定具有以下技能的人员列表(表示为数字 - id):

C : 1, 8, 12, 14

C++:3、7、8、12、15

perl:1、2、3、8

红宝石 : 14, 23

给定技能列表,返回与所需技能集匹配的 id:

[例如]

技能组合:C & C++ 答案是 8,12

技能组合:C、C++、Perl - 匹配至少 2 项技能 答案是 1、3、8、12

id 的列表最初是未排序的,但我从排序开始。天真的方法是获取一个列表(例如第二个示例的 c++)并将其与使用排序顺序的另一个列表(例如 Java)进行比较。

有没有算法或更好的方法?

0 投票
1 回答
684 浏览

algorithm - 更新范围并跟踪每个索引处出现的最大值

你得到一个数组,比如 A[],有 N 个元素,最初它们都等于负无穷大。

现在您被要求执行两种类型的查询(总共 M 个查询):

键入 1。给定两个整数 a 和 d,您需要将数组 A[] 从索引 l 更新为索引 r。您需要做的是 - 对于每个包含某些值的索引 l+i(其中 0<=i<=rl),例如“val”,您需要使用最大值 a+i*d 更新该索引的值,并且val,即 A[l+i] = max(A[l+i], a+i*d)。

类型 2。给定一个整数“i”,您需要报告 A[i] 的值。

示例:让 N = 5 和 M = 4

注意:N 和 M 的值可以大到 100000,所以我正在寻找比 O(N*M) 更好的算法。

谢谢。

0 投票
0 回答
92 浏览

algorithm - 带带宽约束的第 i 阶统计量

考虑以下情况: Mary 和 Larry 各自有一个数组 M [1,..., n] 和 L[1,..., n]。M 和 L 中的所有元素都是不同的。Mary 和 Larry 有兴趣找到他们组合数组的第 i 阶统计量。因为 Mary 和 Larry 住在不同的城市,所以他们在带宽方面存在通信限制。它们可以一次发送一个整数,其中值落在 {0,..., n} 内或从 M 或 L 数组中提取的任何值。每个数字传输都算作一次通信。您可以根据这些约束定义自己的协议。这个问题的一个目标是最小化计算组合 i 阶统计量所需的通信次数。推导出最小化通信次数的算法。

我无法想出找到第 i 个顺序统计的有效方法。我一直在尝试使用随机选择算法递归地解决问题,但是通信部分让我失望了。任何帮助将不胜感激。

0 投票
2 回答
1692 浏览

javascript - 在数组中查找可能的加法组合

解决这个问题的最佳方法是什么?我不知道如何开始。这不是家庭作业问题,而是面试练习。

'使用 JavaScript 语言,让函数 ArrayAddition(arr) 获取存储在 arr 中的数字数组,如果数组中的任何数字组合可以相加等于数组中的最大数字,则返回字符串 true,否则返回字符串假。例如:如果 arr 包含 [4, 6, 23, 10, 1, 3],则输出应返回 true,因为 4 + 6 + 10 + 3 = 23。数组不会为空,不会包含所有相同的元素,并且可能包含负数。'

http://coderbyte.com/CodingArea/GuestEditor.php?ct=Array%20Addition&lan=JavaScript

0 投票
3 回答
3014 浏览

c++ - 来自 int 数组的最不频繁的公共数字

我必须从一个 int 数组中找到最不常见的数字,我已经编写了代码,但它不能正常工作,

这是我的逻辑,1. 对数组进行排序 2. 更新最小公共计数器 3. 获取是否都是唯一的

和下面的代码,

如评论中所述,只有案例 B 有效,案例 A 和 C 无效,您能帮我解决问题吗?

0 投票
1 回答
419 浏览

ruby - 用 Ruby 建模纸牌游戏 War 并不断循环。有人可以帮我理解我的控制流出了什么问题吗

我是 Ruby 的新手,几周前才开始。我正在尝试创建一个模拟游戏玩法的算法,但我陷入了无限循环。我的控制流出了点问题,我只是没有看到。现在,我没有为战争部分添加循环,只是试图将卡片从数组的末尾取出并放回开头。另外,请注意,我不使用 .shuffle!因为我们被告知不要这样做。这是我的算法课的一部分。另外,我没有作弊,我们被告知要使用 Stack Overflow 和其他资源。

有人可以帮助我了解我哪里出错了吗?谢谢!

0 投票
1 回答
40 浏览

arrays - 在根搜索算法中使用一组向量

我正在处理一个时间序列,其中需要一个简单的根搜索算法来通过迭代计算根。为了做到这一点,我使用了 package rootSolveapply但是,当我想使用整个数据集而不是一次只做一个来扩展该算法以进行多个观察时,我在尝试确定要使用该族的哪个函数时遇到了一些问题。

这是为 1 个观察编写的代码的简化:

您将如何编写一个apply函数(我假设需要一个)来更改Z1Z2、和用于每个包含 780 个观察值的向量Z3,以便我可以找到每组折扣和百分比的函数的根?这可能是直截了当的,但我无法正确弄清楚。Z4Z5

0 投票
2 回答
1317 浏览

java - 线性前缀平均法是否优于二次前缀平均法?

我创建了一种方法(基于我在网上找到的伪代码)来计算数组的前缀平均值,但我不确定我是否满足要求。

要求是:

给定一个包含 n 个数字的数组 a[1…n],计算另一个长度也为 n 的数组 b[1…n],使得 b[i] 是 a[0]…a[i] 的平均值,对于 0 <=我 <= n。

我环顾四周,发现了前缀平均方法的线性和二次版本的伪代码,并创建了我自己的每个实现。

这是线性版本:

这是二次版本:

我的问题:

这两个功能是否都满足要求,如果满足,哪个更好?