[双指针]leetcode18:四数之和(medium)

编程入门 行业动态 更新时间:2024-10-28 06:27:47

[双指针]leetcode18:四数<a href=https://www.elefans.com/category/jswz/34/1768625.html style=之和(medium)"/>

[双指针]leetcode18:四数之和(medium)

题目:

题解:

  • 双指针
  • 本题在15.三数之和的基础上加了一层循环罢了,时间复杂度变为O(n3)了。

代码如下:

class Solution {
public:vector<vector<int>> fourSum(vector<int>& nums, int target) {sort(nums.begin(),nums.end());vector<vector<int>> result;int size=nums.size();for(int a=0;a<size-3;++a){if(a>0&&nums[a]==nums[a-1])continue;//去重for(int b=a+1;b<size-2;++b)//以下代码与三数之和没有区别{if(b>a+1&&nums[b]==nums[b-1])continue;//去重int i=b+1,j=size-1;while(i<j){int sum=nums[a]+nums[b]+nums[i]+nums[j];if(sum<target)while(i<j&&nums[i]==nums[++i]);else if(sum>target)while(i<j&&nums[j]==nums[--j]);else{result.push_back(vector<int>{nums[a],nums[b],nums[i],nums[j]});while(i<j&&nums[i]==nums[++i]);while(i<j&&nums[j]==nums[--j]);}}}}return result;}
};

更多推荐

[双指针]leetcode18:四数之和(medium)

本文发布于:2023-07-28 18:53:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1279854.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:之和   指针   medium

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!