嘿伙计们,我试图了解这个问题的解决方案.问题是查看数组中的任何三个数字是否返回某个值.这个答案是我在网上找到的.
public bool numberequal(int sum, int[] array)
{
int i, k, j;
bool answer = false;
for (i = 0; i < array.Length - 2; i++)
{
for (k = i + 1; k < array.Length - 1; k++)
{
for (j = k + 1; j < array.Length; j++)
{
if (array[i] + array[k] + array[j] == sum)
{
answer = true;
return true;
}
}
}
}
return answer;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是第一个循环的i迭代在array.length上有-2.第二个k迭代也有-1.有人可以善解释原因吗?我们不需要遍历每个元素以获得正确答案吗?