Leetcode 15.三数之和

解法:两处去重+二分法

python 复制代码
class Solution:
    def threeSum(self, nums: List[int]) -> List[List[int]]:
        nums.sort()
        res = []
        visited_numi = [] # 第一处去重
        for i in range(len(nums) - 2):
            if nums[i] not in visited_numi:
                visited_numi.append(nums[i])
                sortnums = nums[i+1: ]
                l, r = 0, len(sortnums) - 1
                while r > l:
                    if sortnums[l] + sortnums[r] == - nums[i]: 
                        res.append([nums[i], sortnums[l], sortnums[r]])
                        while l < r and sortnums[l + 1] == sortnums[l]: l += 1 # 第二处去重
                        while l < r and sortnums[r - 1] == sortnums[r]: r -= 1
                        l += 1
                        r -= 1
                    elif sortnums[l] + sortnums[r] > - nums[i]: r -= 1
                    else: l += 1
        return res
相关推荐
Jayden_Ruan几秒前
C++蛇形方阵
开发语言·c++·算法
星火开发设计2 分钟前
C++ map 全面解析与实战指南
java·数据结构·c++·学习·算法·map·知识
执笔论英雄3 分钟前
【RL] advantages白化与 GRPO中 advantages均值,怎么变化,
算法·均值算法
2301_800895106 分钟前
hh的蓝桥杯每日一题
算法·职场和发展·蓝桥杯
老鱼说AI11 分钟前
现代计算机系统1.2:程序的生命周期从 C/C++ 到 Rust
c语言·c++·算法
仰泳的熊猫14 分钟前
题目1099:校门外的树
数据结构·c++·算法·蓝桥杯
求梦82016 分钟前
【力扣hot100题】反转链表(18)
算法·leetcode·职场和发展
NAGNIP29 分钟前
机器学习特征工程中的特征选择
算法·面试
l1t35 分钟前
DeepSeek辅助编写的利用位掩码填充唯一候选数方法求解数独SQL
数据库·sql·算法·postgresql
Z1Jxxx39 分钟前
反序数反序数
数据结构·c++·算法