Leetcode 四数之和

思路

和三数之和的类似,首先需要对数组进行排序。用两个嵌套的外部循环(i 和 j)来固定潜在四元组的前两个数字。为了避免重复的四元组,代码会跳过连续相同的数字,无论是对 i 还是对 j。在这些循环内部,它初始化两个指针 left 和 right,left 指向 j 之后的位置,right 指向数组末尾。这两个指针随后向内移动,寻找另外两个数字,使其与 nums[i] 和 nums[j] 相加后等于 target。如果当前和小于 target,left 指针向右移动;如果大于 target,right 指针向左移动。如果和等于 target,则将该四元组添加到结果列表中,然后跳过 left 和 right 指针当前位置上所有紧邻的重复数字,以确保只记录唯一的四元组,之后再继续向内移动。

python 复制代码
class Solution:
    def fourSum(self, nums: List[int], target: int) -> List[List[int]]:
        if not nums:
            return []
        nums.sort()
        res=[] #存储结果
        n=len(nums)
        for i in range(n):
            if i>0 and nums[i]==nums[i-1]:
                continue
            for j in range(i+1,n):
                if j>i+1 and nums[j]==nums[j-1]:
                    continue
                left=j+1
                right=n-1
                while left<right:
                    sum=nums[i]+nums[j]+nums[left]+nums[right]
                    if sum<target:
                        left+=1
                    elif sum>target:
                        right-=1
                    else:
                        res.append([nums[i],nums[j],nums[left],nums[right]])
                        while left<right and nums[left]==nums[left+1]:
                            left+=1
                        while left<right and nums[right]==nums[right-1]:
                            right-=1
                        left+=1
                        right-=1
        return res
相关推荐
久菜盒子工作室19 小时前
量化金融|基于算法和模型的预测研究综述
算法·金融
CoovallyAIHub20 小时前
SBP-YOLO:面向嵌入式悬架的轻量实时模型,实现减速带与坑洼高精度检测
深度学习·算法·计算机视觉
CoovallyAIHub20 小时前
医药、零件、饮料瓶盖……SuperSimpleNet让质检“即插即用”
深度学习·算法·计算机视觉
dragoooon3420 小时前
[优选算法专题二滑动窗口——串联所有单词的子串]
数据结构·c++·学习·算法·leetcode·学习方法
刃神太酷啦20 小时前
C++ 异常处理机制:从基础到实践的全面解析----《Hello C++ Wrold!》(20)--(C/C++)
java·c语言·开发语言·c++·qt·算法·leetcode
Brookty21 小时前
【算法】双指针(二)复写零
学习·算法
胖达不服输21 小时前
「日拱一码」081 机器学习——梯度增强特征选择GBFS
人工智能·python·算法·机器学习·梯度增强特征选择·gbfs
初级炼丹师(爱说实话版)1 天前
2025算法八股——深度学习——优化器小结
人工智能·深度学习·算法
努力的小帅1 天前
C++_哈希
开发语言·c++·学习·算法·哈希算法·散列表
Christo31 天前
TFS-2023《Fuzzy Clustering With Knowledge Extraction and Granulation》
人工智能·算法·机器学习·支持向量机