Paste_Image.png

思路:

对数据进行排序

2)为了得到非重复的三元组 不断移动哨兵位置

时间复杂度为O(n*n)

对于4 sum问题 其时间复杂度为O(n^3)

vector> threeSum(vector& nums) {

vector> res;

if(nums.size()<3)

return res;

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

int left,right;

for(int i=0;i

{

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

int target=0-nums[i];

while(left

{

int temp=nums[left]+nums[right];

if(temp==target)

{

vector hh={nums[i],nums[left],nums[right]};

//sort(hh.begin(),hh.end());

res.push_back(hh);

while(nums[left]==hh[1]&&left

left++;

while(nums[left]==hh[1]&&left

right--;

continue;

}

if(temp>target)

{

right--;

continue;

}

if(temp

{

left++;

continue;

}

}

//理解为什么要这样去除重复数据

while (i + 1 < nums.size() && nums[i + 1] == nums[i])

i++;

}

return res;

}

Paste_Image.png

思路:

1)将数据分为前后两部分

2)C、D数组数据相加后添加到unordered_map中,map键为和,值为个数

时间复杂度:O(n*n)

int fourSumCount(vector& A, vector& B, vector& C, vector& D) {

int N=A.size();

vector dt;

for(int i=0;i

for(int j=0;j

dt.push_back(A[i]+B[j]);

//将4个数组分为两部分,dt存储前一部分

//kk 存储寻找的数据 使用键作为数据 值作为数据的个数

unordered_map kk;

for(int i=0;i

for(int j=0;j

kk[C[i]+D[j]]++;

int res=0;

for(int i=0;i

{

if(kk.find(0-dt[i])!=kk.end())

res+=kk.find(0-dt[i])->second;

}

return res;

}

c语言3sum,3sum 4sum相关推荐

  1. 2sum、3sum、4sum以及任意连续的数的和为sum、任意连续或者不连续的数的和为sum...

    2sum 如果数组是无序的,先排序(n*logn),然后用两个指针i,j,各自指向数组的首尾两端,令i=0,j=n-1,然后i++,j--,逐次判断a[i]+a[j]?=sum,如果某一刻a[i]+a ...

  2. 3Sum 3Sum Closest 4Sum

    难度:3 3Sum的题意: 给出一列数,找出所有的满足条件的三个数,条件:三个数相加等于0 3Sum Closest 的题意: 给出一列数,找出三个数使得三个数相加最接近target 4Sum: 和3 ...

  3. 3Sum 3Sum Closest 4Sum

    简单延续2sum的做法,用循环,不过代码比较长.原本很多地方写了break,后来发现都不应该加. class Solution { public:vector<vector<int> ...

  4. 各种3sum 4sum

    这两天做了3sum, 3sum closest, 4sum 一个模板就是先sort array, 取一个或两个下标(depend on 3sum or 4sum)然后用另外两个指针指向头和尾.由于数组 ...

  5. LeetCode -- 3Sum

    Question: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? F ...

  6. 小浩算法全目录汇总 - 20200520版

    各位好,小浩自2019年1月以来,共完成了一百篇算法题解,并且每道题目都配有图示.我计划继续输出至少两百篇高频算法题解,目标是完成一本至少300道题目的图解算法题典,面向算法小白.同时,我的个人 bl ...

  7. 15. 3 Sum (C,Python)

    本文讲述了Array类中第15个问题的几种解法,实现语言包括C,Python, 难度为medium. 问题: Given an array nums of n integers, are there ...

  8. leetcode刷题规划

    LeetCode精华题目列表[刷题规划系列] – TuringPlanet 目录 算法题到底在考察什么? 题目列表 Array String Linked List Queue Stack Advan ...

  9. 玩转算法面试LeetCode题目目录

    文章目录 一.数组中的问题其实最常见 1. 如何写出正确的程序 2. 基础算法思路的应用 3. 对撞指针 4. 滑动窗口 二.查找表相关问题 三.在链表中穿针引线 四.栈.队列.优先队列 1. 栈的基 ...

最新文章

  1. @程序员,如何“终身成长”与跨界?
  2. 自学python要到什么程度-学好深度学习,Python 得达到什么程度?
  3. 1088 Rational Arithmetic (20 分)【难度: 简单 / 知识点: 模拟】
  4. php超链接_一个纯PHP库,用于读写文字处理文档
  5. IBM服务器win7系统忘记密码,图文详解Win7系统忘记开机密码的处理方法
  6. AT91SAM9XEK ramdisk 启动笔记
  7. java程序员学习路线以及我的学习经验
  8. php foreach ,PHP学习之foreach循环时加符号的说明
  9. 安装程序将在重启您的计算机后黑屏,安装windows10一直黑屏怎么解决_win10安装到一半黑屏修复方法...
  10. windows使用WSL安装linux子系统
  11. 详解 MySql InnoDB 中意向锁的作用
  12. 自建服务器解网络锁,掌握iPhone1-4代刷机技巧
  13. numpy安装与调试
  14. CruiseControl.Net+SVN+MSBuild 自动编译
  15. 【致远FAQ】V5V8.0sp1_单位管理员-流程督办监控-批量移交-待分配事项,是什么意思?
  16. Springboot3.0整合swagger,废弃Springfox改用Springdoc
  17. 【UVA 11183】 Teen Girl Squad (定根MDST)
  18. SPM12入门案例1
  19. 小程序滚动穿透解决方案
  20. [bzoj5507] [洛谷P5305] [gzoi2019]旧词

热门文章

  1. GD32VF103_DAC
  2. 最简单的神经网络结构图,神经网络的神经元结构
  3. 桂林理工计算机与科学转专业,2021年桂林理工大学大一新生转专业及入学考试相关规定...
  4. 最优化基础理论与方法——2.1最优性条件
  5. 陶国荣著JQuery权威指南PDF
  6. Android 源码编译问题集锦
  7. 手机钢琴软件测试自学,手机钢琴app哪个好_自学钢琴软件哪个好_安卓钢琴软件哪个好...
  8. CDUT新生赛wp misc (杂项
  9. ([\s\S]*?)正则表达式写法
  10. Pytorch ResNet源码学习