博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode18. 4Sum (思路及python解法)
阅读量:2241 次
发布时间:2019-05-09

本文共 1060 字,大约阅读时间需要 3 分钟。

Given an array nums of n integers and an integer target, are there elements abc, and d in nums such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target.

Note:

The solution set must not contain duplicate quadruplets.

Example:

Given array nums = [1, 0, -1, 0, -2, 2], and target = 0.A solution set is:[  [-1,  0, 0, 1],  [-2, -1, 1, 2],  [-2,  0, 0, 2]]

找出数组中的四个数字,使四个数和为0。

这个题和3sum都差不多,最后都归到2sum。

先将数组排序,然后用for循环,去找3sum,2sum,最后返回全部结果。

class Solution:    def fourSum(self, nums: List[int], target: int) -> List[List[int]]:        self.results=[]        nums.sort()        self.findNum(nums, target, 4, [])        return self.results        def findNum(self, nums, target, N, result):        if len(nums)
target: r-=1 else: l+=1 else: for i in range(len(nums)-N+1): if nums[i]*N>target or nums[-1]*N
0 and nums[i-1]!=nums[i]): self.findNum(nums[i+1:], target-nums[i], N-1, result+[nums[i]])

 

转载地址:http://xjrbb.baihongyu.com/

你可能感兴趣的文章
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
深入理解JVM虚拟机9:JVM监控工具与诊断实践
查看>>
深入理解JVM虚拟机10:JVM常用参数以及调优实践
查看>>
深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
查看>>
深入理解JVM虚拟机13:再谈四种引用及GC实践
查看>>
Spring源码剖析1:Spring概述
查看>>
Spring源码剖析2:初探Spring IOC核心流程
查看>>
Spring源码剖析5:JDK和cglib动态代理原理详解
查看>>
Spring源码剖析6:Spring AOP概述
查看>>
【Linux】进程的理解(二)
查看>>
【Linux】vim的简单配置
查看>>
ThreadLocal 那点事儿(续集)
查看>>
笔记本怎么设置WIfi热点
查看>>
如何实现字符串的反转及替换?
查看>>
Java面试题全集(上)
查看>>
Java面试题全集(中)
查看>>
值传递和引用传递
查看>>
什么情况下用+运算符进行字符串连接比调用StringBuilder对象的append方法连接字符串性能更好?
查看>>
怎么根据Comparable方法中的compareTo方法的返回值的正负 判断升序 还是 降序?
查看>>