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

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

个人感觉这道题最大的难点在“不重复”。

一开始主要是在思考怎么实现“三指针”,后来想到可以遍历一遍数组,每一遍都当成是双指针就行了。

需要注意的是在每次遍历时一定要后移到与当前位置不相等的地方,不然就会重复。

然后对后面的数使用双指针时也要进行去重工作,在每次找到一个结果三元组后移动双指针时一定要将两个指针移动到与之前元素不等的位置,这样才能保证没有重复元素。

总之绕了不少弯路。

class Solution {
public:
    vector<vector<int>> threeSum(vector<int>& nums) {
        vector<vector<int>> result;
        sort(nums.begin(),nums.end());
        for(int i=0;i<nums.size();i++){
            int front=i+1;
            int back=nums.size()-1;
            while(front<back){
                if(nums[front]+nums[back]+nums[i]==0){
                    result.push_back(vector<int>{nums[i],nums[front],nums[back]});
                    while(front<back&&nums[front+1]==nums[front]) front++;
                    while(front<back&&nums[back-1]==nums[back]) back--;
                    front++;
                    back--;
                }
                else if(nums[front]+nums[back]+nums[i]<0) front++;
                else if(nums[front]+nums[back]+nums[i]>0) back--;
            }
            while(i+1<nums.size()&&nums[i+1]==nums[i]) i++;
        }
        return result;
    }
};

http://www.dtcms.com/a/94023.html

相关文章:

  • CrossNorm与SelfNorm的具体实现
  • 【Python】编程50个经典操作
  • 向量数据库的适用场景与局限性分析
  • R²AIN SUITE 助力医药企业服务管理数智化转型
  • jmeter 镜像构建
  • PostgreSQL: GIN 索引详解
  • 详解c++中的可调用对象,std::function、Lambda表达式、std::bind等
  • AQUA爱克泳池设备从水质安全到舒适体验,全链路护航小区泳池健康
  • npm install 卡在创建项目:sill idealTree buildDeps
  • 使用react 引入相对路径文件
  • Golang Beego SQL链式查询(包含Join关联)
  • Git 之配置ssh
  • Python与面向对象编程的七大核心概念:解析与示例
  • 一周掌握Flutter开发--8. 调试与性能优化(下)
  • 内网渗透-CS免杀与应用开发
  • 操作系统实验7 显示进程列表
  • 中科亿海微SoM模组——AI图像推理解决方案
  • 金融级密码管理器——抗内存扫描的密钥保险箱
  • 【C++】 动态内存管理
  • python中析构函数和封装
  • Spring Boot框架
  • VMware异常记录
  • 【踩坑】修复Idea升级后无法正常使用,报错 java.lang.ClassNotFoundException: com.liceb.b.Z@
  • MySQL InnoDB事务状态详解:information_schema.innodb_trx表解析
  • Neo4j GDS-06-neo4j GDS 库中社区检测算法介绍
  • 7-7 用给定的n个数字构成一个最大素数
  • 函数参数是定义还是赋值
  • 从 Flask 项目打包为多平台 Docker 镜像并上传 Docker Hub(含 GitHub Actions)
  • 需求导向的K8S网络原理分析:Kube-proxy、Flannel、Calico的地位和作用
  • Langchain+NebulaGraph结合大模型的KBQA源码分析