博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
15. 三数之和
阅读量:4507 次
发布时间:2019-06-08

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

题目

 

代码

class Solution {public:    vector
> threeSum(vector
& nums) { //先固定住第一个数字,然后后面两个数字为 i+1和 nums.size()-1开始往中间缩小,并且要考虑数字重复的问题,时间复杂度为O(n²) vector
> res; sort(nums.begin(),nums.end()); for(int i=0;i
target) { back--; }else { vector
temp; temp.push_back(nums[i]); temp.push_back(nums[front]); temp.push_back(nums[back]); res.push_back(temp); //移动到和当前的front指向的值不重复的地方 while(front

 

 

思路

先将数组进行排序,比如[1,6,5,5,3]进行排序后为[1,3,5,5,6],此时我们可以将问题化解为求两个数字的和等于第一个数字乘以-1.

假设第一个数字的取值为nums[i],那么另外两个数字的取值从这个数组的nums[i+1]和nums.size()开始往中间取值,直到low<high不满足。

转载于:https://www.cnblogs.com/lizhenghao126/p/11053609.html

你可能感兴趣的文章
cache、session与cookie
查看>>
Ant 入门
查看>>
新东方6级听写考点笔记
查看>>
MySQL积累
查看>>
gulp详细入门教程
查看>>
学习中 C 相关一些试题和答案
查看>>
python中的可迭代对象与迭代器
查看>>
WebKit的已实施srcset图像响应属性
查看>>
suggestion开发小结以及 对键盘事件的总结(针对中文输入法状态)
查看>>
Nio Client
查看>>
数据库 chapter 16 XML数据库
查看>>
spring mvc jsp运行不起来的问题
查看>>
tkinter笔记005-输入框
查看>>
大数据概述
查看>>
SpringBoot 密码MD5加密
查看>>
Mac MySQL启动不了解决办法(MySQL卸载重新安装教程)
查看>>
连通块
查看>>
servlet.txt笔记
查看>>
jquery设置select选中
查看>>
今天说一下DML触发器的顺序
查看>>