【力扣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;
    }
};
相关推荐
hold?fish:palm22 分钟前
45 二叉树的右视图
开发语言·c++·算法
粤鼎恒业1 小时前
惠州工厂电子料回收厂家推荐:从交接单反推筛选标准
大数据·数据库·算法·硬件架构·硬件工程·pcb工艺·材料工程
小爷毛毛(卓寿杰)1 小时前
【Agent 意图识别】输出协议、评估与置信度
人工智能·算法·大模型·prompt·大语言模型·agent
优质酸酸乳1 小时前
力扣100题之21合并两个有序链表
算法·leetcode·链表
旖旎夜光1 小时前
LeetCode 137 : 只出现一次的数字 II(位运算) —— 题解
c++·笔记·学习·算法·leetcode·力控
yexianglunbai2 小时前
Redis 详解:从核心数据结构到高可用架构实战
数据结构
旋生万物2 小时前
Agent System Prompt 注入螺旋公理:让 AI 推理不跑偏的可复制模板(附完整 Prompt)
人工智能·算法
深圳雨林凯AI2 小时前
图案裂变的空间关系原理:元素放大为何必然挤压负空间,以及三个可调变量|雨林凯AI技术拆解
人工智能·算法
bro_Java6662 小时前
《栈与队列:数据结构的“双生花”》
java·数据结构·编辑器
tellmewhoisi2 小时前
机器学习:聚类算法
算法·机器学习·聚类