【发布时间】:2022-01-15 04:04:04
【问题描述】:
对于这个数组(示例测试用例):1 1 2 2 4 6 和 D = 2 差为 D 的对数为 3。 解释: 这里的差 2 对是 (2,4) 和 (4,6)。生成 (2,4) 的方法有 2 种,生成 4,6 的方法有 1 种。输出为 3 (1+2)。 这段代码只通过了这个测试用例,但它没有通过所有其他测试用例(大约 13 个隐藏测试用例)。我需要了解为什么会发生这种情况
int Func_M_2(vector<int> arr,int D)
{
int counter =0;
for(int i=0;i<arr.size();i++)
{
for(int j=i+1;j<arr.size();j++)
{
if(arr[j]-arr[i]==D)
counter++;
}
}
return counter;
}
【问题讨论】:
-
std::abs(arr[j] - arr[i]) == D? -
您的代码是否假定数组已排序?这个问题能保证吗?
-
不,它不认为
-
你用未排序的数组测试过吗?
-
@Jarod42 相同的输出