力扣之数组3—四数之和

2023-10-27

给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。
解题思路和三数之和类似
唯一区别需要嵌套遍历数组,前两个数a,b分别遍历循环,在循环内用双指针指向另外两个数c,d.通过移动指针寻找四数之和等于target的数组

class Solution:
    def fourSum(self, nums: List[int], target: int) -> List[List[int]]:
        nums.sort()
        n = len(nums)
        result = []
        if (not nums or n < 4):
            return result
        for i in range(n-3):
            if i > 0 and nums[i] == nums[i - 1]:
                continue
            for b in range(i+1,n-2):
                c = b + 1
                d = n - 1
                if b > i + 1 and nums[b] == nums[b-1]:
                    continue
                while c < d:
                    if nums[i] + nums[b] + nums[c] + nums[d] == target:
                        result.append([nums[i],nums[b],nums[c],nums[d]])
                        while c < d and nums[c] == nums[c+1]:
                            c += 1
                        while c < d and nums[d] == nums[d-1]:
                            d -= 1
                        c += 1
                        d -= 1
                    elif nums[i] + nums[b] + nums[c] + nums[d] < target:
                        c += 1
                    else:
                        d -= 1
        return result
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

力扣之数组3—四数之和 的相关文章

  • 查找 with: 块中定义的函数

    这是一些代码理查德 琼斯的博客 http www mechanicalcat net richard log Python Something I m working on 3 with gui vertical text gui labe
  • python 可以检测它运行在哪个操作系统下吗?

    python 可以检测操作系统 然后为文件系统构建 if else 语句吗 我需要将 Fn 字符串中的 C CobaltRCX 替换为 FileSys 字符串 import os path csv from time import strf
  • 如何屏蔽 PyTorch 权重参数中的权重?

    我正在尝试在 PyTorch 中屏蔽 强制为零 特定权重值 我试图掩盖的权重是这样定义的def init class LSTM MASK nn Module def init self options inp dim super LSTM
  • 打印 scrapy 请求的“响应”

    我正在尝试学习 scrapy 在遵循教程的同时 我正在尝试进行细微的调整 我想简单地从请求中获取响应内容 然后我会将响应传递到教程代码中 但我无法发出请求并获取响应内容 建议就好 from scrapy http import Respon
  • 如何使用pycaffe重构caffe网络

    我想要的是 加载网络后 我将分解一些特定的图层并保存新的网络 例如 原网 数据 gt conv1 gt conv2 gt fc1 gt fc2 gt softmax New net 数据 gt conv1 1 gt conv1 2 gt c
  • 用 Python 编写一个无操作或虚拟类

    假设我有这样的代码 foo fooFactory create 由于种种原因 fooFactory create 可能无法创建实例Foo 如果可以的话我想要fooFactory create 返回一个虚拟 无操作对象 这个对象应该是完全惰性
  • 类属性在功能上依赖于其他类属性

    我正在尝试使用静态类属性来定义另一个静态类属性 我认为可以通过以下代码来实现 f lambda s s 1 class A foo foo bar f A foo 然而 这导致NameError name A is not defined
  • 在 Python 中使用 sec 函数的反函数

    我正在创建一个程序 用于计算从一定高度范围和设定初始速度发射射弹的最佳角度 在我需要使用的最终方程中 存在一个反 sec 函数 它导致了一些麻烦 我已经导入了数学并尝试使用 asec 无论如何 但是数学似乎无法计算反秒函数 我也明白 sec
  • Python 中 genfromtxt() 的可变列数?

    我有一个 txt具有不同长度的行的文件 每一行都是代表一条轨迹的一系列点 由于每条轨迹都有自己的长度 因此各行的长度都不同 也就是说 列数从一行到另一行不同 据我所知 genfromtxt Python 中的模块要求列数相同 gt gt g
  • 将一个时间序列插入到 pandas 中的另一个时间序列中

    我有一组定期测量的值 说 import pandas as pd import numpy as np rng pd date range 2013 01 01 periods 12 freq H data pd Series np ran
  • 将 subprocess.Popen 的输出通过管道传输到文件

    我需要启动一些长时间运行的进程subprocess Popen 并希望拥有stdout and stderr从每个自动管道到单独的日志文件 每个进程将同时运行几分钟 我想要两个日志文件 stdout and stderr 每个进程当进程运行
  • 如何在 Windows 上使用 Python 3.6 来安装 Python 2.7

    我想问一下如何使用pip install对于 Python 2 7 当我之前安装并使用 Python 3 6 时 我现在必须使用 Windows 上的 Python 版本 pip install 继续安装 Python 3 6 我需要使用以
  • 使用 genfromtxt 导入 numpy 中缺失值的 csv 数据

    我有一个 csv 文件 看起来像这样 实际文件有更多的列和行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 假设文件的名称是info csv如果我尝试使用导入它 data numpy genfromtxt i
  • Python unicode 字符代码?

    有没有办法将 Unicode 字符 插入 Python 3 中的字符串 例如 gt gt gt import unicode gt gt gt string This is a full block s unicode charcode U
  • 字典的嵌套列表

    我正在尝试创建dict通过嵌套list groups Group1 A B Group2 C D L y x 0 for y in x if y x 0 for x in groups d k v for d in L for k v in
  • 在 Mac 上安装 Pygame 到 Enthought 构建中

    关于在 Mac 上安装 Pygame 有许多未解答的问题 但我将在这里提出我的具体问题并希望得到答案 我在 Mac 上安装 Pygame 时遇到了难以置信的困难 我使用 Enthought 版本 EPD 7 3 2 32 位 它是我的默认框
  • Python int 太大,无法放入 SQLite

    我收到错误 OverflowError Python int 太大 无法转换为 SQLite INTEGER 来自以下代码块 该文件约25GB 因此必须分部分读取 length 6128765 Works on partitions of
  • urllib2.urlopen() 是否实际获取页面?

    当我使用 urllib2 urlopen 时 我在考虑它只是为了读取标题还是实际上带回整个网页 IE 是否真的通过 urlopen 调用或 read 调用获取 HTML 页面 handle urllib2 urlopen url html
  • Python模块单元测试的最佳文件结构组织?

    遗憾的是 我发现有太多方法可以在 Python 中保存单元测试 而且它们通常没有很好的文档记录 我正在寻找一种 终极 结构 它可以满足以下大部分要求 be discoverable by test frameworks including
  • 如何对字符串列表进行排序?

    在 Python 中创建按字母顺序排序的列表的最佳方法是什么 基本回答 mylist b C A mylist sort 这会修改您的原始列表 即就地排序 要获取列表的排序副本而不更改原始列表 请使用sorted http docs pyt

随机推荐

  • 【数据结构】C语言实现栈(详细解读)

    前言 个人主页 Dream Chaser 专栏 http t csdn cn oXkBa 本篇内容 c语言数据结构 C语言实现栈 目录 什么是栈 栈的概念及结构 实现栈的方式 链表的优缺点 顺序表的优缺点 栈的实现 a 头文件的包含 b 栈
  • 【kafka】服务器命令行查询kafka信息消费情况

    大家好 我是好学的小师弟 kafka tool出问题的情况下 可以用命令行来查看kafka信息 1 找到kafka所在的安装目录 find name kafka 2 列出有哪些用户组来消费 kafka consumer groups sh
  • windows下OpenCV安装教程以及vs2019配置opencv教程

    文章目录 一 OpenCV下载 二 OpenCV安装及配置 三 VS2019项目配置OpenCV 一 OpenCV下载 官网地址 Home OpenCV 下载地址 OpenCV download SourceForge net 二 Open
  • Zabbix通过SNMPv2监控DELL服务器的硬件信息

    一 zabbix监控DELL服务器 1 简述 监控DELL服务器硬件一般有两种途径 1 操作系统上安装OMSA 编写脚本调用omreport命令进行监控 需要在操作系统上安装比较麻烦 2 使用iDRAC Integrated Dell Re
  • 神经网络与深度学习三:编写单隐层神经网络

    三 编写单隐层神经网络 1 神经网络概述 这篇文章你会学到如何实现一个神经网络 在我们深入学习技术细节之前 现在先大概快速的了解一下如何实现神经网络 如果你对某些内容不甚理解 后面的文章中会深入其中的细节 上周我们讨论了logistic回归
  • 流程引擎(flowable)之流程相关

    代码示例 流程部署 发布 InputStream inputStream new DefaultResourceLoader getResource classpath BusinessProcessBeanTest test bpmn20
  • 学习笔记(106):R语言入门基础-lines函数

    立即学习 https edu csdn net course play 24913 285850 utm source blogtoedu lines函数 在已有图上加线 功能相当于plot x y type l x lt 1 20 y1
  • 数据库产品如何选型:

    author skate time 2014 06 26 数据库产品如何选型 一 软件功能对比 二 成本考虑 三 满足业务场景 四 平衡各种资源 oracle mysql nosql选型 一 是否满足业务场景 各DB系统软件功能对比 1 功
  • *【思路】程序员怎么快速接手一个项目

    可能不管新手老手有些程序员 接手一个项目之后都会多少有些迷惘 以下是本人总结出来的一点小心得 如果错误希望大家给我留言 一起讨论 最重要的事儿 如果你总是看见代码多就发愁 看见代码脏乱差就诅咒埋怨 看见代码逻辑复杂就头疼 搞不清调用关系就放
  • 用Python做一个无限弹窗

    首先 我们需要对程序进行分析 1 导入GUI库 2 死循环 3 跳出弹窗 理清了思路 我们一起来愉快地写代码吧 第一步 导入GUI库 相信很多人都会自己导入吧 小编这里不在多噜嗦了 直接上代码 import easygui 导入GUI库 这
  • 小梅哥Xilinx FPGA学习笔记3——时序逻辑电路设计之计数器

    计数器 功能介绍 1 功能描述 一 代码编写 1 设计文件 2 激励文件 3 仿真图 二 总结 功能介绍 1 功能描述 时序逻辑电路是指电路任何时刻的稳态输出不仅取决于当前的输入 还与前一时刻输入形成的状态有关 这跟组合逻辑电路相反 组合逻
  • 锐捷商通v6数据库服务器位置,热烈庆祝我校开通IPv6资源

    当前 云计算风起云涌 物联网方兴未艾 而IP地址的枯竭 网络安全性和管理 维护 运营要求与日俱增 互联网面临更严峻的挑战 下一代互联网的发展和应用 将成为提高我校未来竞争力的突破口和制高点 我校在IPv6建设相对取得了阶段性成果 下一步以I
  • 晶体振荡器与晶体谐振器的区别

    晶体振荡器与晶体谐振器的区别 2012 02 17 10 43 112311440yan 等2人 分类 工程技术科学 浏览506次 网友采纳 2007 04 05 12 42 yueyezhe858 十四级 晶体谐振器跟晶体振荡器有区别 晶
  • 【新项目开发】vue3+ts+elementPlus+ffmpegjs开发纯web端的视频编辑器

    新项目开发的流程 当在项目中使用新技术时 我们应该首先进行调研 了解其特点和使用方法 在实现功能时 我们可以采用最简单的方式 而不必过于关注项目的设计和结构 一旦掌握了新技术 我们可以根据其API属性进行代码设计 以便更好地开发 以开发一个
  • 详解JS中关于call、apply和bind的实现(源码实现)

    在JavaScript中 call apply和bind是Function对象自带的三个方法 这三个方法的主要作用是改变函数中的this指向 call apply bind方法的共同点 1 都是用来改变函数的this对象的指向的 2 第一个
  • 《Java编程思想》--Bruce Eckel 读书笔记

    java编程思想 Bruce Eckel 所有编程语言的最终目的都是提供一种 抽象 方法 一 将一条消息发给对象时 如果并不知道对方的具体类型是什么 但采取的行动同样是正确的 这种情况就叫作 多形性 Polymorphism 单根结构 所有
  • Flutter实现PopupMenu(弹出设置菜单)

    PopupMenuButton简介 PopupMenuButton是一个用于创建弹出菜单的小部件 它通常与IconButton或其他触发菜单显示的小部件一起使用 当用户点击触发按钮时 PopupMenuButton会在屏幕上方或下方弹出一个
  • 07C++11多线程编程之死锁概念,演示及一般解决和使用std::lock解决并且使用lock_guard的参数2让std::lock自动解锁

    07C 11多线程编程之死锁概念 演示及一般解决和使用std lock解决并且使用lock guard的参数2让std lock自动解锁 1 死锁概念 C 中 1 必须有两把锁以上并且是多个线程下才能产生死锁问题 注 多个单例是不会造成死锁
  • JAVA下拉列表框组件

    1 JComboBox类 Swing中的下拉列表框使用JComboBox类对象来表示 它是javax swing JComponent类的子类 它的常用构造方法如下 public JComboBox public JComboBox Com
  • 力扣之数组3—四数之和

    给定一个包含 n 个整数的数组 nums 和一个目标值 target 判断 nums 中是否存在四个元素 a b c 和 d 使得 a b c d 的值与 target 相等 找出所有满足条件且不重复的四元组 解题思路和三数之和类似 唯一区