每日快讯!力扣:18. 四数之和

18. 四数之和

给你一个由 n个整数组成的数组 nums,和一个目标值 target。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):


(相关资料图)

0 <= a, b, c, d < n

abc和 d互不相同

nums[a] + nums[b] + nums[c] + nums[d] == target

你可以按 任意顺序 返回答案 。

示例 1:

输入:nums = [1,0,-1,0,-2,2], target = 0输出:[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]

示例 2:

输入:nums = [2,2,2,2,2], target = 8输出:[[2,2,2,2]]

提示:

1 <= nums.length <= 200

-109 <= nums[i] <= 109

-109 <= target <= 109

第一种对法:

双指针法,时间复杂度O(n^3)

class Solution {

public:

vector<vector<int>> fourSum(vector<int>& nums, int target) {

vector<vector<int>>ans;

sort(nums.begin(),nums.end());

for(int i = 0;i<nums.size();i++){

if(nums[i]>=0&&nums[i]>target)break;

if(i>0&&nums[i]==nums[i-1])continue;

for(int j = i+1;j<nums.size();j++){

if(nums[j]+nums[i]>target&&nums[j]+nums[i]>=0)break;

if(j>i+1&&nums[j]==nums[j-1])continue;

int left,right;

left = j+1,right=nums.size()-1;

while(left<right){

if((long)nums[i]+nums[j]+nums[left]+nums[right]>target){

right--;

}else if((long)nums[i]+nums[j]+nums[left]+nums[right]<target){

left++;

}else{

ans.push_back(vector<int>{nums[i],nums[j],nums[left],nums[right]});

while(left<right&&nums[left]==nums[left+1])left++;

while(left<right&&nums[right]==nums[right-1])right--;

left++,right--;

}

}

}

}

return ans;

}

};

思路:沿用了三数之和的思路,在多加了一层循环,重点是去重和剪枝的细节

剪枝:

第一层剪枝:当nums[i]>target时若nums[i]大于或等于0就说明后面的数都是正数已经无法等于target

第二层剪枝:当nums[i]+nums[j]>target时同上

去重细节与三数之和相同

关键词:

为您推荐

每日快讯!力扣:18. 四数之和

18 四数之和给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且不重复的四元组[nums[a],nums[b],nums[c

来源:哔哩哔哩2023-04-11

天天热讯:北京电影学院纪录片导演创作考研真题参考书分数线

初试招生目录纪录片导演创作培养专门的影视纪录片导演人才,系统学习纪录片创作手法和相关理论,具有较高的中外文化艺术修养和审美能力,熟练

来源:哔哩哔哩2023-04-11

冲上热搜!周杰伦起诉网易

网易

来源:第一财经资讯2023-04-11

众生药业2022年净利3.22亿同比增长16% 董事长陈永红薪酬49.87万

众生药业2022年净利3 22亿同比增长16%董事长陈永红薪酬49 87万2023 4 1022:06:41挖贝网丁易涵挖贝网4月10日,众生药业

来源:挖贝网2023-04-10

鹏城实验室牵头制定 AI模型技术国家标准正式发布-世界热闻

读创 深圳商报首席记者王海荣由鹏城实验室、北京大学、华为、百度等16家单位共同编制的国家标准《信息技术神经网络表示

来源:读创2023-04-10

严惩网络暴力“按键伤人”

网络暴力新表现,潜在危害大,传播范围广。应当及时研判、不弃微末

来源:人民日报2023-04-10

开局之春话经济丨如何解读一季度中小企业发展指数反弹?-当前焦点

中小企业是经济肌体的“毛细血管”,他们的经营遍及社会生产生活的各个角落,关乎千千万万个家庭的就业和生活。因此中小企业的健康发展对于国

来源:央视新闻客户端2023-04-10

大乐透23039期晒票:彩票能让彩民逆袭人生,也可以债台高垒 全球时讯

彩票一直以来都是吸引人的赌博游戏,对于一些彩民来说,中大奖是改变命运的机会。但是,彩票背后也存在着很多负面因素,因此彩票是否能够让彩

来源:酷易软件园2023-04-10