我不清楚子数组的定义。它是指连续的索引列表,例如[i..j]还是非连续的,例如[0],[5],[6]
答案 0 :(得分:7)
我认为子数组是指连续性基于索引的数组。例如,举一个例子
2 3 1 3 1(指数分别为0,1,2,3,4)
所以子阵列是2,3,1 3(索引0,1,2,3) 但是(1,2 1)(索引2,0,4)不能成为一个子阵列,因为索引是非连续的。
希望它有用;)
答案 1 :(得分:5)
子数组是另一个数组中的数组。子数组包含连续的元素,而子序列则不包含。
示例会说清楚
考虑一个数组{1,2,3,4}
所有子阵列的列表是
{},{1},{2},{3},{4},{1,2},{2,3},{3,4},{1,2,3,4}
所有子序列的列表是{},{1},{2},{3},{4},{1,2},{1,3},{1,4},{2,3},{2,4},{3,4},{1,2,3},{1,2,4},{1,3,4},{2,3,4},{1,2,3,4}
答案 2 :(得分:3)
在大多数情况下,它指的是一个连续的索引子集。
答案 3 :(得分:3)
子阵列是指连续列表,而子序列是指非连续列表。
答案 4 :(得分:0)
好吧,SubArray 是连续的,而 SubSequence 不是。如果您想完整注释,请单击最后提到的链接。如果您懒得点击,请阅读此处:
这里是子数组和子序列的定义:
子数组是数组的连续部分。位于另一个数组内的数组。例如,考虑数组 [1, 2, 3, 4],有 10 个非空子数组。子数组是 (1), (2), (3), (4), (1,2), (2,3), (3,4), (1,2,3), (2,3, 4) 和 (1,2,3,4)。一般来说,对于一个大小为 n 的数组/字符串,有 n*(n+1)/2 个非空的子数组/子环。
子序列是可以通过零个或多个元素从另一个序列导出的序列,而不会改变其余元素的顺序。 对于同一个例子,有 15 个子序列。它们是 (1), (2), (3), (4), (1,2), (1,3),(1,4), (2,3), (2,4), (3) ,4), (1,2,3), (1,2,4), (1,3,4), (2,3,4), (1,2,3,4)。更一般地说,我们可以说对于一个大小为 n 的序列,我们总共可以有 (2n-1) 个非空子序列。
定义/信用:Click Here to Read full note / SubArry And SubSequence