java - 使用Java查找子数组的总和
问题描述
我的问题出在函数 Sum(int z) 中,它应该返回索引 z 处子数组中所有项目的总和,如果索引无效则返回 0。我目前的代码是
public int[][] data;
public calculate(int[][] source) {
data = source;
}
public int size() {
return data.length;
}
public boolean isValidSubsetIndex(int z) {
if (z<0 || z>= size())
return false;
return true;
}
public int sum(int z) {
int x=0;
if (isValidSubsetIndex(z) == true) {
for (int i = 0; i < data[z].length;i++) {
for(int j= i; j<i+1; j++)
x = x + data[i][j];
}
return x;
}
return 0;
}
aP = new Analytics(new int[][]{{30, 10, 40},
{50, 20, 80},
{10, 60, 30},
{60, 60, 60}});
aHD = new Analytics(new int[][]{{-30, 10, -40},
{},
{-10, 60},
{-60},
{-20, -20, -20, -20, -20},
{-20, -20},
{-20},
{},
{50},
{10, 30, 20}});
下面给出了它失败的测试。我当前的代码仅提供正确的第一个结果(sum(0) 的 sum 80)。如果 sum(1) 结果应该是 150,如果 sum(2) 结果应该是 100
public void testSumHD() {
testSumD();
int[] sumHD = {-60, 0, 50, -60, -100, -40, -20, 0, 50, 60};
for(int i=0; i < sumHD.length; i++) {
assertEquals(sumHD[i], aHD.sum(i));
}
assertEquals(0, aHD.sum(-1));
assertEquals(0, aHD.sum(10));
}
解决方案
解是 x = x + data[z][j];
推荐阅读
- c++ - 在 cpp_int 上设置位
- python - 生成从前端烧瓶发送的视频缩略图
- jenkins - sfdx force:source:deploy 未找到结果
- java - 如何调试 Maven 项目中的冲突依赖项
- java - 如何从剪贴板中获取复制的内容 - Selenium 无头模式
- javascript - Javascript Student - 通过索引返回数组# - 参数问题
- azure-sqldw - Azure Synapse Analytics 中的 STRING_SPLIT
- python - 在OpenCV python中测量点到掩码的距离
- python - ezdxf 和 Matplotlib 如何增加线条粗细
- bash - 将数组参数传递给 zsh 中的 bash 脚本