首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从给定的整数数组中获取所有连续子数组。

从给定的整数数组中获取所有连续子数组。
EN

Stack Overflow用户
提问于 2021-07-03 08:45:22
回答 1查看 111关注 0票数 0

我想从给定的整数数组中找到所有子数组。我使用HashSet of ArrayList存储所有连续组合。但是这个哈希集并没有正确地存储数组元素,并且遗漏了一些数组元素。此外,哈希集存储重复的数组元素。

代码语言:javascript
代码运行次数:0
运行
复制
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;

public class SubArrays {

    public static int possibleSubArrays(int[] aray) {

        Set<ArrayList<Integer>> uniqueSubArrays= new HashSet<ArrayList<Integer>>();

        for (int i = 0; i < aray.length; i++) {
            ArrayList<Integer> subArrays = new ArrayList<Integer>();
            for (int j = i; j < aray.length; j++) {
                subArrays.add(aray[j]);
                System.out.println("Creating Sub-Array: " + subArrays);
                uniqueSubArrays.add(subArrays);
                System.out.println("Entering elements in Set of array: " + uniqueSubArrays);
            }
        }
        System.out.println("Array of sub-arrays:" + uniqueSubArrays);

        return uniqueSubArrays.size();
    }

    public static void main(String[] args) {
        int[] array = { 1, 2, 3, 4 };

        int size = possibleSubArrays(array);
        System.out.println("Size of Unique Sub arrays is: " + size);

    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-03 10:08:07

这不是我们如何生成数组的sub-arrays。我们需要三个嵌套循环来生成所有的子数组。前两个循环,用于获取子数组的起始和结束索引。第三种方法将特定子数组的所有元素添加到subArrays列表中。在每次j-th迭代结束时,我们需要将这些subArrays列表添加到uniqueSubArrays集合中。

代码语言:javascript
代码运行次数:0
运行
复制
        for (int i = 0; i < aray.length; i++)
        {
            for (int j = i; j < aray.length; j++)
            {
                ArrayList<Integer> subArrays = new ArrayList<Integer>();
                for (int k = i; k <= j; k++)
                {
                    subArrays.add(aray[k]);
                    uniqueSubArrays.add(subArrays);
                }
                System.out.println(uniqueSubArrays);
            }
        }

数组:1,2,3,4

子阵列:

代码语言:javascript
代码运行次数:0
运行
复制
[[1], [1, 2, 3], [2], [1, 2], [2, 3], [2, 3, 4], [3], [3, 4], [4], [1, 2, 3, 4]]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68234635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档