问题标签 [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 投票
3 回答
83 浏览

arrays - 最大子串的长度加起来为 S

我在一次采访中被问到以下问题,我无法给出最佳答案。

问题:编写一个程序,找出总和为 S 的最大连续子数组的长度。给定一个可变大小的数组和一个整数。

输入: 1. 一个可变大小的数组,它只能有 {-1, 0, 1} 个元素。

示例:A[] = {1, 0, 0, 1, -1, 1, 1, 1, 1}

  1. 一个整数 S,

示例:S = 4

输出:8

解释:A 的最大连续子数组加起来 S=4:{1, 0, 0, 1, -1, 1, 1, 1} 或 {0, 0, 1, -1, 1, 1, 1, 1}

约束:应该在 O(N) 内完成

我已经解决了这个问题,但无法满足时间复杂度。任何人都可以提供可以在 O(N) 中解决此问题的解决方案。

PS:我提出的问题没有版权问题。

0 投票
3 回答
470 浏览

javascript - 如何从数组中创建包含相同字符串的子数组?

我有一个这样的数组:

是否可以制作包含相同标题字段字符串的子数组?

例如在这种情况下,我将拥有:

等等...

如果是单个元素,我应该有:

我正在寻找一种通用的方法。

例如,我知道我可以使用indexOf('results')函数filter,但是我想是否可以避免硬编码,因为它并不总是相同的标题。

有任何想法吗 ?

小提琴

0 投票
2 回答
47 浏览

java - 窗口 k 算法的最大和子数组未正确返回起始索引

这是我的 maxSum 子数组的代码

给定输入数组 -> [110,-4,3,6,7,11] 和 k =3,代码应该给出 [110,-4,3] 因为这是具有最大和的子数组。

我已经实现了算法。它适用于除一个以外的所有输入。我无法弄清楚出了什么问题。

这是输出:

对于 input1,我看不到应该是“110、-8、16”的预期答案。我尝试将返回语句更改为“maxSumIndex”而不是“maxSumIndex+1”。这打破了其他两个输入。

请提供您的想法

0 投票
5 回答
9788 浏览

arrays - Julia:数组是否包含特定的子数组

在 julia 中,我们可以检查一个数组是否包含一个值,如下所示:

但是,当尝试以特定顺序检查子数组时,这将返回 false:

验证数组中是否存在特定子数组的正确语法是什么?

0 投票
1 回答
38 浏览

java - 从现有对象的属性生成数组

假设我们有这个类:

假设我们有Person该类的集合。如何生成仅包含的新字符串集合lastnames

我们可以通过迭代轻松地做到这一点,但我正在寻找最有效的方法来做到这一点。

由于某些依赖项,我无法使用 Java 8。

0 投票
0 回答
169 浏览

dynamic-programming - 解决spoj KPMATRIX的方法是什么?

问题链接在这里。问题基本上是计算给定大小 N 乘 M 矩阵的所有此类子矩阵,其元素总和介于 A 和 B 之间。N,M<=250。10^-9<=A<=B<=10^9。

人们已经使用DP和BIT解决了它。我不清楚如何。

首先,我试图解决上述问题的一个更简单的版本,一维情况:给定一个长度为 N 的数组 A,计算所有子数组,其中子数组中的元素总和位于 A 和 B 之间,但仍然不能认为比 O(n^2) 更好。这是我所做的:

我想制作另一个数组来保留原始数组的前缀和,比如前缀 [N]。前缀[i] = A 1 + A[2] + A[3] + ...A[i]。设置前缀[1] = A [1]。然后对于从 2 到 N 的每个 i,问题是计算所有 j <= i 使得总和 Z = A[j] + A[j+1] + ..A[i] 位于 A 和 B 之间。这是等价的到前缀[i] - 前缀[j-1]。但它仍然是 O(n^2),对于每个 i,j 都在 i 位置。

任何人都可以帮助我逐步推进我解决主要问题的给定方法吗?

0 投票
2 回答
699 浏览

python - 找到包含所有数字的最小长度子数组

文件 input.txt 由两行组成:第一行有整数 N 个空格,然后是整数 K (1 ≤ N,K ≤ 250000)。Second 有 N 个空格分隔的整数,其中每个整数都小于或等于 K。保证从 1 到 K 的每个整数都在数组中。任务是找到包含所有整数的最小长度子数组。并打印它的开始和结束。请注意,索引从 1 开始。

例子:

我在最近的一次编程比赛中完成了这项任务。结束了,我没有作弊。我已经使用 python 3 实现了它:

想法是将第 i 个树的最后位置保存到字典中,如果字典包含所有项目,则检查该子数组是否最小。

第 16 次测试表明我的算法超过了时间限制,即 1 秒。我认为,我的算法是 O(N),因为它在一次跨数组运行中完成,并且映射访问成本 O(1)。

如何加快这一算法的速度?可以降低复杂性还是我对某些需要花费大量时间的 Python 的误解?

0 投票
0 回答
16 浏览

php - 如何在复杂的多维数组中添加数组在精确子数组中是否存在或不存在未知深度的php

这是我的问题。我有一个具有不同深度的复杂多维数组。我尝试过的 Stackoverflow 上的所有内容都失败了。我尝试使用 array_push、array_merge、array_combined、foreach 等。我的代码是 BS。

您可以在此处找到该数组(其中的一部分(有 15k 条记录)。

我的目标是找到最后一个数组并添加一个额外的数组。

我在该多维数组中寻找的数组是:

当我找到这个数组时,我需要添加这个没有值的数组:

在此之后,数组应如下所示:

问题是:在那个数组中,我可以有一个像这样的子数组:

我需要将相同的数组添加到这些数组中。因此,数组应如下所示:

额外的问题是,其中一些数组可能有我想要添加的数组,填充数据,我需要跳过它。像这样:

或者像这样:

基本上,(伪代码)我需要检查每个子数组(不知道有多深),检查 ORDER 数组是否存在(在 [NOS] 之后)

如果数组 Order 存在 = 否,则添加没有数据的数组

如果数组 Order 存在 = 是,查看 Order 数组是否有子数组,如果没有,跳过它(数据存在)

别的

如果 Order 数组存在 = 是,则遍历数组,跳过它(数据存在)

别的

添加没有数据的数组订单

我不知道如何到达最后一个要检查、添加或跳过的数组。

0 投票
1 回答
398 浏览

c - 使用边界条件导航映射到 1D 的 2D 数组

我正在尝试以效率和模式匹配功能为重点来实现生活游戏。图案是闪光灯,滑翔机,十字架等。

我有一个世界的一维数组,以及一个宽度和高度。为了找到邻居,我想计算摩尔社区的索引,然后检查这些是否是哈希,如果它们是,这会增加 get_neighbours 函数的返回变量。北方和南方似乎有效,但东方和西方却没有。NE, SE, SW, NW 都是基于前面的逻辑(即向北向西走)。

对于模式匹配,我尝试使用与上述相同的逻辑来构建一个 5x5 子数组。这实质上使用了“读取头”。从提供的位置向东穿过世界,直到它移动了 5 个空间。然后,它返回到原始位置,向南移动正确的行数,然后再次向东移动,直到我们收集到 25 个索引。

当它这样做时,它从世界构建子数组,然后我可以 strcmp() 将它与字符串作为模式。

作为参考,带有索引的 7x5 网格(带边界):

我很好奇什么逻辑可以让我在保留边界条件的同时计算摩尔邻域的索引,以便我可以正确计算邻居和子数组(因为它们都将使用相同的逻辑)。

编辑:如果有任何 googlers 想要的子数组函数。

0 投票
6 回答
2105 浏览

c - 子数组中的最大和

给你一个由 N 个整数组成的数组。
数组的最大和是该数组的一个非空连续子数组的元素的最大和。
例如数组[1, -2, 3, -2, 5]的最大和是6,因为子数组[3, -2, 5]的和是6,不可能得到更大的子数组和。
现在您可以从给定数组中删除不超过一个元素。通过这样做可以实现的结果数组的最大可能最大和是多少?

我正在用我自己的测试用例测试我的代码。我在 dev-c++ 上得到了正确的输出。但是当我在线测试我的代码时,我得到了错误的答案。我无法找出问题所在。