如何计算长度为n的数组中长度为m的连续元素子集个数
固定长度连续元素子集计数方法
- 适用场景:针对长度为
n的任意类型数组(元素为字符串、数值等类型均不影响计数逻辑),无需对原数组做排序、元素重排操作,仅统计长度固定为m的连续元素子集总数。 - 排除规则:元素不连续、打乱原数组顺序选取的子集均不计入统计范围。
计算示例
以长度n=5的整型数组为例:int[] MyArr = {1, 2, 3, 4, 5};
设定选取的连续子集长度m=3,手动统计符合要求的子集共3个:
{1, 2, 3}
{2, 3, 4}
{3, 4, 5}
类似{1, 2, 4}、{2, 5, 1}这类非连续、重排元素的子集,均不符合统计要求。
通用计算公式
- 当
m ≤ n时,符合要求的连续子集总数为:count = n - m + 1 - 当
m > n时,不存在符合要求的子集,总数为0。
将示例参数n=5、m=3代入公式,计算得5-3+1=3,和手动统计结果完全一致。
内容的提问来源于stack exchange,提问作者Good guy from world
相关产品推荐
相关产品推荐

