当前位置: 首页 > news >正文

【LeetCode】15.三数之和

题目要求

在这里插入图片描述

解题思路

这道题我们可以使用暴力解法来解决,时间复杂度为O(N^3)。但是会超时,因此我们需要对暴力解法进行优化,而这道题我们使用双指针来进行优化,即依次固定一个数,在接下来的区间中找到两数之和等于固定数的相反数即可。还有一点需要注意:我们需要不重不漏的添加。

代码实现

class Solution 
{
public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>> ret;sort(nums.begin(),nums.end());int len=nums.size();int cur=0;while(cur<len){//当前的目标值int target=-nums[cur];//双指针法int left=cur+1,right=len-1;while(left<right){//相等时if(nums[left]+nums[right]==target){ret.push_back({nums[cur],nums[left],nums[right]});//所有情况,还得继续,并且值不能相同left++;while(left<right&&nums[left-1]==nums[left]){left++;}right--;while(left<right&&nums[right+1]==nums[right]){right--;}}//小于时else if(nums[left]+nums[right]<target){left++;}//大于时else{right--;}}cur++;while(cur<len&&nums[cur-1]==nums[cur]){cur++;}}return ret;}
};

http://www.mrgr.cn/news/21417.html

相关文章:

  • Chrome下载视频的插件
  • 四个pdf软件分享,你更爱哪一款?
  • Centos9 网卡配置文件
  • ComfyUI+Krea免费利用AI制作网站萌宠IP,五步搞定制作AI萌宠
  • 找到字符串中所有字母异位词问题
  • 【深入理解SpringCloud微服务】深入理解nacos配置中心(二)——客户端启动源码分析
  • LLM大模型:将爬虫与大语言模型结合
  • 部署若依Spring boot项目
  • 基于javaweb的茶园茶农文化交流平台的设计与实现(源码+L文+ppt)
  • HTML 基础,尚优选网站设计开发(二)
  • C++ 上位软件通过Snap7开源库访问西门子S7-1200/S7-1500数据块的方法
  • Java集合
  • 【每日刷题】Day112
  • Danbooru风格图片分享平台szurubooru
  • 【2024高教社杯国赛A题】数学建模国赛建模过程+完整代码论文全解全析
  • 如何从硬盘恢复已删除/丢失的文件?硬盘恢复已删除的文件技巧
  • 分布式光伏的劣势
  • 数据链路层
  • (五十九)第 9 章 查找(B 树)
  • 非空约束(Not Null)