原题链接
思路一:暴力解法
满足题目的两个限定条件:
- 两组数的差值要等于 d i f f diff diff;
- 下标满足:
i
<
j
<
k
i < j < k
i<j<k;
对于第二个条件我们可以每次选择三个下标,即每次选择的时候,一个循环选定一个下标,那么三个下标,就需要三个循环,然后为了保证单调递增,所以使得内层循环的下标从上层循环的下标开始。
对于第一个条件,我们选定了三个下标后,加入一个 i f if if 判断即可!
代码一暴力:
class Solution {
public:
int arithmeticTriplets(vector<int>& nums, int diff) {
int n = nums.size();
int cnt = 0;
for (int i=0; i < n; i ++)
{
for (int j=i+1; j < n; j ++)
{
for (int k=j+1; k < n; k ++)
{
if (nums[j] - nums[i] == diff && nums[k] - nums[j] == diff){
cnt ++;
}
}
}
}
return cnt;
}
};