如果我有数据结构说:
1 0 1 0
0 0 0 0
0 1 0 1
...有没有办法计算1(或添加它们,因为这个值与计数相同)而不循环整个数组及其子数组?
我正在创建这样的结构:
int[][] grid = new int[N][N];
不允许任何图书馆解决此问题。
答案 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的数量。
我知道它可能不是你想要它的方式,但它将避免必须遍历生成的数据结构。