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

力扣 LeetCode 15. 三数之和(Day3:哈希表)

解题思路:

双指针

注意:nums[i] == nums[i - 1]和nums[i] == nums[i + 1]不一样(用于去重)

我们需要使用nums[i] == nums[i - 1],从后往前看,保证用过一次,不会漏掉

例如[ -1 , -1 , 2 ],如果使用nums[i] == nums[i + 1]就会直接continue导致漏掉这个解

class Solution {
    public List<List<Integer>> threeSum(int[] nums) {
        List<List<Integer>> res = new ArrayList<>();
        Arrays.sort(nums);

        for (int i = 0; i < nums.length - 2; i++) {
            if (nums[i] > 0) return res;
            if (i > 0 && nums[i] == nums[i - 1]) continue;

            int left = i + 1;
            int right = nums.length - 1;

            while (left < right) {
                int sum = nums[i] + nums[left] + nums[right];
                if (sum > 0) right--;
                else if (sum < 0) left++;
                else {
                    res.add(Arrays.asList(nums[i], nums[left], nums[right]));
                    while (left < right && nums[left] == nums[left + 1]) left++;
                    while (left < right && nums[right] == nums[right - 1]) right--;
                    left++;
                    right--;
                }
            }
        }
        return res;
    }
}


http://www.kler.cn/a/399337.html

相关文章:

  • 学习日记_20241117_聚类方法(高斯混合模型)
  • QT使用libssh2库实现sftp文件传输
  • AI行业动态:AGI预测、模型进化与工具革新
  • windows工具 -- 使用rustdesk和云服务器自建远程桌面服务, 手机, PC, Mac, Linux远程桌面 (简洁明了)
  • SpringBoot使用AspectJ的@Around注解实现AOP全局记录接口:请求日志、响应日志、异常日志
  • Excel超级处理器:高效实现2种批量生成二维码方式
  • Java中的 File类与Files类
  • ssm131保险业务管理系统设计与实现+jsp(论文+源码)_kaic
  • leetcode hot100【LeetCode 64.最小路径和】java实现
  • MySQL一些使用操作-持续更新
  • 前端,location.reload刷新页面
  • Go语言24小时极速学习教程(一)基础语法
  • 【网络安全】Cookie SameSite属性
  • 贪吃蛇小游戏设计
  • java八股-jvm入门-程序计数器,堆,元空间,虚拟机栈,本地方法栈,类加载器,双亲委派,类加载执行过程
  • 121、SQL Server取开始时间、截止时间
  • 阿里云引领智算集群网络架构的新一轮变革
  • 上交大与上海人工智能研究所联合推出医学多语言模型,模型数据代码开源
  • C++中的单例模式(Singleton)全面讲解与实际案例
  • 室内定位论文精华-无人机与机器人在地下与室内环境中的自主导航与定位新技术
  • 数据结构------队列(Java语言描述)
  • C# 反射与动态编程
  • 本草智链:中药实验管理的区块链应用
  • web前端开发--网页
  • C++(Qt)软件调试---内存泄漏分析工具MTuner (25)
  • 199. 二叉树的右视图【 力扣(LeetCode) 】