【力扣hot100题】(105)三数之和

之前的题都是两个指针,这次要三个指针,但本质上还是双指针。

先按序排列,第一个指针正常从左往右,后两个指针按照双指针的做法,从两端开始向各自逼近。

cpp 复制代码
class Solution {
public:
    vector<vector<int>> threeSum(vector<int>& nums) {
        sort(nums.begin(),nums.end());
        vector<vector<int>> result;
        int n=nums.size();
        for(int one=0;one<n-2&&nums[one]<=0;one++){
            int left=one+1;
            int right=n-1;
            while(left<right){
                if(nums[left]+nums[right]+nums[one]<0) left++;
                else if(nums[left]+nums[right]+nums[one]>0) right--;
                else{
                    result.push_back(vector<int>{nums[one],nums[left],nums[right]});
                    while(left<n-1&&nums[left]==nums[left+1]) left++;
                    left++;
                }
            }
            while(one<n-2&&nums[one]==nums[one+1]) one++;
        }
        return result;
    }
};
相关推荐
计算机安禾1 天前
【C语言程序设计】第33篇:二级指针与指针数组
c语言·开发语言·数据结构·c++·算法·visual studio code·visual studio
雨落在了我的手上1 天前
C语言之数据结构初见篇(6):单链表的介绍(2)
数据结构
DANGAOGAO1 天前
数据结构复习(持续更新)
数据结构
落地加湿器1 天前
Acwing算法课图论与搜索笔记
c++·笔记·算法·图论·dfs·bfs·图搜索算法
cui_ruicheng1 天前
C++ 数据结构进阶:哈希表原理
数据结构·c++·算法·哈希算法
黎阳之光1 天前
黎阳之光:AI硬核技术锚定十五五,赋能海空天全域智能感知
大数据·人工智能·算法·安全·数字孪生
xiaoye-duck1 天前
C++ 二叉搜索树(BST)深度解析:从概念原理、核心操作到底层实现
数据结构·c++
卷福同学1 天前
【养虾日记】如何让Openclaw联网搜索技能
人工智能·算法
努力学习的小廉1 天前
我爱学算法之——floodfill算法(上)
学习·算法
丶小鱼丶1 天前
数据结构和算法之【队列】
java·数据结构