博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode-18-4 Sum
阅读量:5749 次
发布时间:2019-06-18

本文共 1469 字,大约阅读时间需要 4 分钟。

算法描述:

Given an array nums of n integers and an integer target, are there elements abc, and d in nums such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target.

Note:

The solution set must not contain duplicate quadruplets.

Example:

Given array nums = [1, 0, -1, 0, -2, 2], and target = 0.A solution set is:[  [-1,  0, 0, 1],  [-2, -1, 1, 2],  [-2,  0, 0, 2]]

解题思路:与3Sum 思路一致。

vector
> fourSum(vector
& nums, int target) { vector
> results; if(nums.size() < 4) return results; sort(nums.begin(),nums.end()); for(int i=0; i < nums.size()-3; i++){ if(i > 0 && nums[i] == nums[i-1]) continue; for(int j=i+1; j < nums.size()-2; j++){ if(j > i+1 && nums[j]==nums[j-1]) continue; int low = j+1; int high = nums.size()-1; while(low < high){ int sum = nums[i]+nums[j]+nums[low]+nums[high]; if(sum==target){ vector
temp = {nums[i],nums[j],nums[low],nums[high]}; results.push_back(temp); while(low < high && nums[low]==nums[low+1]) low++; while(low < high && nums[high]==nums[high-1]) high--; low++; high--; } else if(sum < target) low++; else high--; } } } return results; }

 

转载于:https://www.cnblogs.com/nobodywang/p/10327900.html

你可能感兴趣的文章
判断是否含有中文
查看>>
Byte[]、Image、Bitmap 之间的相互转换
查看>>
前端JavaScript规范 非常详细
查看>>
SpringCloud系列:服务配置文件的进化历程(程序内置、程序外置、实时更新)...
查看>>
支付宝6轮面试经验
查看>>
配置FTP服务
查看>>
iOS转场弹窗、网易云音乐动效、圆环取色器、Loading效果等源码
查看>>
【资源分享】ArcFace Demo [Android]
查看>>
vue中$refs的用法及作用详解
查看>>
详谈分布式最终一致性
查看>>
玩转 React【第02期】:恋上 React 模板 JSX
查看>>
MyEclipse Web开发教程:XML & XML架构(一)
查看>>
linux文件权限与属性的更改
查看>>
Juniper系列之密码恢复
查看>>
spring cloud(一):微服务架构开篇
查看>>
Centos7安装完毕后无法联网的解决方法
查看>>
iptables防火墙(for linux平台)部署文档二
查看>>
CentOS 5.5 安装MYSQL
查看>>
HTML元素属性测试总结(续篇)
查看>>
【python】编程语言入门经典100例--28
查看>>