Welcome to Subscribe On Youtube
2367. Number of Arithmetic Triplets
Description
You are given a 0indexed, strictly increasing integer array nums
and a positive integer diff
. A triplet (i, j, k)
is an arithmetic triplet if the following conditions are met:
i < j < k
,nums[j]  nums[i] == diff
, andnums[k]  nums[j] == diff
.
Return the number of unique arithmetic triplets.
Example 1:
Input: nums = [0,1,4,6,7,10], diff = 3 Output: 2 Explanation: (1, 2, 4) is an arithmetic triplet because both 7  4 == 3 and 4  1 == 3. (2, 4, 5) is an arithmetic triplet because both 10  7 == 3 and 7  4 == 3.
Example 2:
Input: nums = [4,5,6,7,8,9], diff = 2 Output: 2 Explanation: (0, 2, 4) is an arithmetic triplet because both 8  6 == 2 and 6  4 == 2. (1, 3, 5) is an arithmetic triplet because both 9  7 == 2 and 7  5 == 2.
Constraints:
3 <= nums.length <= 200
0 <= nums[i] <= 200
1 <= diff <= 50
nums
is strictly increasing.
Solutions

class Solution { public int arithmeticTriplets(int[] nums, int diff) { int ans = 0; int n = nums.length; 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) { ++ans; } } } } return ans; } }

class Solution { public: int arithmeticTriplets(vector<int>& nums, int diff) { int ans = 0; int n = nums.size(); 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) { ++ans; } } } } return ans; } };

class Solution: def arithmeticTriplets(self, nums: List[int], diff: int) > int: return sum(b  a == diff and c  b == diff for a, b, c in combinations(nums, 3))

func arithmeticTriplets(nums []int, diff int) (ans int) { n := len(nums) for i := 0; i < n; i++ { for j := i + 1; j < n; j++ { for k := j + 1; k < n; k++ { if nums[j]nums[i] == diff && nums[k]nums[j] == diff { ans++ } } } } return }

function arithmeticTriplets(nums: number[], diff: number): number { const n = nums.length; let ans = 0; for (let i = 0; i < n; ++i) { for (let j = i + 1; j < n; ++j) { for (let k = j + 1; k < n; ++k) { if (nums[j]  nums[i] === diff && nums[k]  nums[j] === diff) { ++ans; } } } } return ans; }