在Java中用1和(1)和0(零)的矩阵求和的最快方法

时间:2017-03-21 00:33:35

标签: java arrays matrix

如果我有数据结构说:

1 0 1 0
0 0 0 0
0 1 0 1

...有没有办法计算1(或添加它们,因为这个值与计数相同)而不循环整个数组及其子数组?

我正在创建这样的结构:

int[][] grid = new int[N][N];

不允许任何图书馆解决此问题。

2 个答案:

答案 0 :(得分:1)

试试这个。

int[][] grid = {
    {1, 0, 1, 0},
    {0, 0, 0, 0},
    {0, 1, 0, 1},
};
long onesCount = Arrays.stream(grid)
    .flatMapToInt(IntStream::of)
    .sum();
System.out.println(onesCount);  // -> 4

答案 1 :(得分:-2)

创建此数组时,应记录插入时间内的1的数量。

我知道它可能不是你想要它的方式,但它将避免必须遍历生成的数据结构。