题目来源:
leetcode题目,网址:1995. 统计特殊四元组 - 力扣(LeetCode)
解题思路:
四重循环,暴力寻找。
解题代码:
class Solution {public int countQuadruplets(int[] nums) {int res=0;for(int i=0;i<nums.length;i++){for(int j=i+1;j<nums.length;j++){for(int k=j+1;k<nums.length;k++){int sum=nums[i]+nums[j]+nums[k];for(int l=k+1;l<nums.length;l++){if(nums[l]==sum){res++;}}}}} return res;}
}
总结:
官方题解给出了三种解法。第一种是四重循环直接枚举。第二种是逆序枚举,将他第三个元素边的元素放入哈希表,这样得到 nums[a],nums[b],nums[c] 并且得和后,直接判段哈希表中有无其和即可 。第三种是逆序枚举 nums[a] 和 nums[b] ,枚举时,先遍历右边元素求 nums[d]-nums[c] 并将其放入哈希表,然后遍历左边元素求和并判断和是否在哈希表中。