数据只有50,可以直接四层循环暴力过
也可以使用哈希表,逆序遍历c,把每个d可能的数都存入哈希表中,然后判断a + b + c是否能在哈希表中找到对应的值。 可以用数组代替哈希表
func countQuadruplets(nums []int) int {
n := len(nums)
mp := make([]int, 301)
res := 0
for c := n - 2; c >= 2; c-- {
mp[nums[c+1]]++
for a := 0; a < c - 1; a++ {
for b := a + 1; b < c; b++ {
res += mp[nums[a] + nums[b] + nums[c]]
}
}
}
return res
}