问题标签 [sub-array]

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 投票
1 回答
81 浏览

regex - 正则表达式是否可以识别所有相等值的子数组?

等值子数组是包含一个或多个具有相同值的连续元素的子数组。

例如,假设我们的数组是:

1,1,3

有四个等值子数组:

[1]、[1]、[3]、[1,1]

请注意,元素可以是多个子数组的一部分。

我知道[\d]匹配数字,但这个要求让我失望了。出于好奇,我正在询问正则表达式解决方案。

0 投票
2 回答
154 浏览

python - 如果列表在其他列表中的布尔表达式

检查列表是否在另一个列表中的有效方法是什么?就像是:

列表中的顺序很重要。

0 投票
1 回答
66 浏览

arrays - 从整数数组中找到大小为 K 的连续子数组,使得从 1 到 k 的附加元素永远不会低于零

给定一个大小为 n 的未排序整数数组。我们需要找出所有大小为 k(n>k) 的连续子数组,这样在子数组中,如果我们不断地将 1 到 k 的元素相加,总和永远不会低于零。例如,1,-3,4,-2,6,-5 (n=6, k=3) 这里条件由一个子数组传递。(总和无关紧要) 1,-3,4
- 3,4,-2 4,-2,6 通过 -2,6,-5

0 投票
1 回答
415 浏览

algorithm - 找到最大和连续子数组,使得子数组的长度小于等于 k?

如果存在两个以上的子数组,我们需要返回长度较小的子数组。

我们只关心子数组的长度及其总和。

我知道这可以使用蛮力在 O(n^2) 中解决,但我正在寻找一种有效的方法来做到这一点。我也尝试使用滑动窗口概念在 O(n) 中解决这个问题,但后来我意识到它在某些情况下会失败。

如何有效地做到这一点?

0 投票
3 回答
225 浏览

php - 有没有办法在不知道主键的情况下从 SUBARRAY 获取命名键/值?

简短:有没有办法在不知道主键的情况下从 SUBARRAY 获取命名键/值?

长:

我有一个 foreach 循环,可以提取文本文件并将它们转换为单个/单个数组(重置每个文件之间的数组)...

例子:

(变成数组的第一部分被进程的多个部分使用,所以我不想添加不必要的代码)

我想提取“名称”和“数字”的值,但是我事先不知道键的值/格式.. - 示例:pinkblue597

如果我这样做print_r,我会看到我想要的数组......

但如果我这样做,$name=$found[0];我不会得到“$name”的结果......

或者

如果我这样做,$name=$found[0]["name"]; 我不会得到“$name”的结果......

我可以通过 foreach 循环来做到这一点,但它似乎效率低下......

PS 这个数组中只有一个(未知)键和一个子数组。子数组始终相同。

编辑:使代码更容易看到(忘了这样做)

0 投票
2 回答
412 浏览

vba - 总和最大但小于特定值的子集

我有一个具有正值的数组。例如 array= {5,4,4,3.8,2,1.7} 我需要找到一个总和最大但小于 12 的子数组。在这种情况下,它将是 {4,4,3.8}

另一个 ex 数组 {7,4,3,2} 在这种情况下,最大总和为 12,子集为 {7,3,2}

它的算法是什么,因为我有一个长度超过 1000 的非常大的数组。我正在用 VBA excel 编写这个程序。

谢谢。

0 投票
2 回答
106 浏览

java - java读取csv +子数组的特定总和-最有效的方法

我需要从大型 csv 中读取整数,然后对它们进行特定的求和。目前我有算法:

我试图做的是获取 csv 行的前 x 个成员的总和,然后是每个 +y 的 x 个成员的总和。(在这种情况下,第一个 x - 7 的总和(0-6 的总和),然后是下一个 x - 7 的总和,但 y - 5 列之后的总和(5-11 的总和),(10-16 的总和)......并为每一行写下它们。(最后收集最大的行号(0-6的总和),(5-11的总和)......,所以最终结果应该是例如5,9,13,155...... ,这意味着第 5 行的最大总和为 0-6,第 9 行的最大总和为 5-11...)如您所见,这是一种非常低效的方法。首先我已将整个 csv 读入字符串 [] ,然后到 int[] 并保存到 Vector。然后我创建了效率很低的循环来完成这项工作。我需要它尽可能快地运行,因为我将使用具有很多不同 x 和 y 的非常大的 csv。我正在考虑,但不知道该怎么做:

  1. 在阅读循环中做这些总和
  2. 以不同的方式求和,并不总是向后循环 x 成员(保存最后一个和然后减去旧的并添加新成员,或者其他更快的方法来进行子数组求和)
  3. 使用 intStream 和并行性(并行可能会很棘手,因为最后我正在寻找 max )
  4. 使用不同的输入然后csv?
  5. 上述所有的?

我怎样才能尽快做到这一点?谢谢

0 投票
1 回答
432 浏览

arrays - 如何在线性时间内为给定的 k 找到至少一次包含所有元素 1 到 k 的最小子数组

假设数组是 {2 4 2 1 5 3 5 3} 并且 k=3。子数组 {2 1 5 3} 包含 1 2 3。

我想知道是否有线性时间算法来解决这个问题。

0 投票
1 回答
95 浏览

c - C - 给定数组中指定元素的最长子数组

我需要帮助解决以下问题:

arr给定一个数组structs

打印数组中元素的最长子数组arr,使得该arr元素大于或等于读取price的某些元素。value

检查元素是否大于或等于priceavalue的函数作为输出子数组的函数void subarray(product *arr,int n,int (*check)(product * ,float ), product *newArr,int *len_newArr,float value) 的参数给出。newArr

这是我的代码:

assignment makes pointer from integer without a cast该程序在线给出警告

comparison between pointer and integer在线

0 投票
5 回答
760 浏览

javascript - 如何从一个对象数组中提取所有可能匹配的对象数组?

我有一个对象数组,例如

假设我只对键对应的对象感兴趣var input = ["ab", "bc"]。这意味着我想通过以下方式 提取所有可能的子数组:result[i].length == 2

- 也就是说,子数组中对象的顺序绝对不重要:我只对每个子数组包含两个对象这一事实感兴趣 -{"ab": ...}{"bc": ...}.

如果我对 感兴趣var input = ["a","a","ab"],结果应该是这样的:

如果没有阶乘级别的计算量,我无法找到实现所需结果的方法(假设input.length可能远大于 2 或 3——甚至 15-20 可能还不够),这在物理上是不可能的。有没有办法有一些合理的性能来解决这样的问题?
重要提示:是的,显然,对于相对较大的值input.lengththere 理论上可能有非常大量的可能组合,但在实践中,result.length总是会相当小(可能是 100-200,我什至怀疑它可能达到 1000。 ..)。但为了安全起见,我只想设置一些限制(比如 1000),这样一旦result.length达到这个限制,函数就会返回当前result并停止。