zoukankan      html  css  js  c++  java
  • LeetCode 18.四数之和

    给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。

    注意:
    答案中不可以包含重复的四元组。

    示例:
    给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。

    满足要求的四元组集合为:
    [
    [-1, 0, 0, 1],
    [-2, -1, 1, 2],
    [-2, 0, 0, 2]
    ]

    class Solution:
        def fourSum(self, nums: List[int], target: int) -> List[List[int]]:
            nums = sorted(nums)
            #print(nums)
            ans = []
            for i in range(len(nums)-3):
                if i>0 and nums[i] == nums[i-1]:
                    continue
                for j in range(i+1,len(nums)-2):
                    if j>i+1 and nums[j] == nums[j-1]:
                        continue
                    low = j+1
                    high = len(nums) - 1
                    if nums[i] + nums[j] + nums[low] + nums[low+1] > target:
                        continue
                    if nums[i] + nums[j] + nums[high-1] + nums[high] < target:
                        continue
                    while low < high:
                        if low > j+1 and nums[low] == nums[low-1]:
                            low+=1
                            continue
                        if high < len(nums)-1 and nums[high] == nums[high+1]:
                            high-=1
                            continue
                        tmp_sum = nums[i] + nums[j] + nums[low] + nums[high]
                        if tmp_sum == target:
                            ans.append([nums[i],nums[j],nums[low],nums[high]])
                            low+=1
                        elif tmp_sum > target:
                            high-=1
                        else:
                            low+=1
            return ans
    
  • 相关阅读:
    Keepalived安装配置
    Playbook 角色(Roles) 和 Include 语句
    Ansible Playbook
    ansible的Ad-hoc命令
    Android线程简介
    宝岛探险,DFS&BFS
    再解炸弹人,dfs&bfs
    解救小哈——bfs广搜
    解救小哈——dfs深搜
    数的全排列
  • 原文地址:https://www.cnblogs.com/sandy-t/p/13283539.html
Copyright © 2011-2022 走看看