c语言3sum,3sum 4sum
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相关推荐
- 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 ...
- 3Sum 3Sum Closest 4Sum
难度:3 3Sum的题意: 给出一列数,找出所有的满足条件的三个数,条件:三个数相加等于0 3Sum Closest 的题意: 给出一列数,找出三个数使得三个数相加最接近target 4Sum: 和3 ...
- 3Sum 3Sum Closest 4Sum
简单延续2sum的做法,用循环,不过代码比较长.原本很多地方写了break,后来发现都不应该加. class Solution { public:vector<vector<int> ...
- 各种3sum 4sum
这两天做了3sum, 3sum closest, 4sum 一个模板就是先sort array, 取一个或两个下标(depend on 3sum or 4sum)然后用另外两个指针指向头和尾.由于数组 ...
- 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 ...
- 小浩算法全目录汇总 - 20200520版
各位好,小浩自2019年1月以来,共完成了一百篇算法题解,并且每道题目都配有图示.我计划继续输出至少两百篇高频算法题解,目标是完成一本至少300道题目的图解算法题典,面向算法小白.同时,我的个人 bl ...
- 15. 3 Sum (C,Python)
本文讲述了Array类中第15个问题的几种解法,实现语言包括C,Python, 难度为medium. 问题: Given an array nums of n integers, are there ...
- leetcode刷题规划
LeetCode精华题目列表[刷题规划系列] – TuringPlanet 目录 算法题到底在考察什么? 题目列表 Array String Linked List Queue Stack Advan ...
- 玩转算法面试LeetCode题目目录
文章目录 一.数组中的问题其实最常见 1. 如何写出正确的程序 2. 基础算法思路的应用 3. 对撞指针 4. 滑动窗口 二.查找表相关问题 三.在链表中穿针引线 四.栈.队列.优先队列 1. 栈的基 ...
最新文章
- @程序员,如何“终身成长”与跨界?
- 自学python要到什么程度-学好深度学习,Python 得达到什么程度?
- 1088 Rational Arithmetic (20 分)【难度: 简单 / 知识点: 模拟】
- php超链接_一个纯PHP库,用于读写文字处理文档
- IBM服务器win7系统忘记密码,图文详解Win7系统忘记开机密码的处理方法
- AT91SAM9XEK ramdisk 启动笔记
- java程序员学习路线以及我的学习经验
- php foreach ,PHP学习之foreach循环时加符号的说明
- 安装程序将在重启您的计算机后黑屏,安装windows10一直黑屏怎么解决_win10安装到一半黑屏修复方法...
- windows使用WSL安装linux子系统
- 详解 MySql InnoDB 中意向锁的作用
- 自建服务器解网络锁,掌握iPhone1-4代刷机技巧
- numpy安装与调试
- CruiseControl.Net+SVN+MSBuild 自动编译
- 【致远FAQ】V5V8.0sp1_单位管理员-流程督办监控-批量移交-待分配事项,是什么意思?
- Springboot3.0整合swagger,废弃Springfox改用Springdoc
- 【UVA 11183】 Teen Girl Squad (定根MDST)
- SPM12入门案例1
- 小程序滚动穿透解决方案
- [bzoj5507] [洛谷P5305] [gzoi2019]旧词
热门文章
- GD32VF103_DAC
- 最简单的神经网络结构图,神经网络的神经元结构
- 桂林理工计算机与科学转专业,2021年桂林理工大学大一新生转专业及入学考试相关规定...
- 最优化基础理论与方法——2.1最优性条件
- 陶国荣著JQuery权威指南PDF
- Android 源码编译问题集锦
- 手机钢琴软件测试自学,手机钢琴app哪个好_自学钢琴软件哪个好_安卓钢琴软件哪个好...
- CDUT新生赛wp misc (杂项
- ([\s\S]*?)正则表达式写法
- Pytorch ResNet源码学习