代码随想录二刷(哈希表)

news2024/12/28 20:38:10

代码随想录二刷(哈希表)

三数之和思路反正对于我来说是真的难想出来。
在这里插入图片描述
若这道题还是采用哈希表的思路去做,非常麻烦,并且还要考虑去重的操作。所以这道题其实用双指针,是更方便的。
在这里插入图片描述
具体程序如下:

class Solution:
    def threeSum(self, nums: List[int]) -> List[List[int]]:
        result = []
        nums.sort()
        for i in range(len(nums)):
            if nums[i] > 0:return result
            if i > 0 and nums[i] == nums[i-1]:
                continue
            left = i + 1
            right = len(nums) - 1
            while right > left:
                sum = nums[i] + nums[left] + nums[right]
                if sum > 0:right -= 1
                elif sum < 0:left += 1
                else:
                    result.append([nums[i],nums[left],nums[right]])
                    while right > left and nums[right] == nums[right-1]:
                        right -= 1
                    while right > left and nums[left] == nums[left+1]:
                        left += 1
                    right -= 1
                    left += 1
                    
        return result

下面来看下四数之和:
在这里插入图片描述
四数之和相当于三数之和升级了一下,并且target不是0了。按照三数之和的思路,再加一个变量作为外层循环。组合出来四个数即可。

class Solution:
    def fourSum(self, nums: List[int], target: int) -> List[List[int]]:
        result = []
        n = len(nums)
        nums.sort()
        for i in range(n):
            if nums[i] > target and target > 0:break 
            if i > 0 and nums[i] == nums[i-1]:
                continue
            for j in range(i+1,n):
                if (nums[i] + nums[j]) > target and target > 0:break 
                if j > i + 1 and nums[j] == nums[j-1]:
                    continue
                left = j + 1
                right = n - 1
                while right > left:
                    sum = nums[i] + nums[j] + nums[left] + nums[right]
                    if sum > target:right -= 1
                    elif sum < target:left += 1
                    else:
                        result.append([nums[i],nums[j],nums[left],nums[right]])
                        while right > left and nums[right] == nums[right-1]:
                            right -= 1
                        while right > left and nums[left] == nums[left+1]:
                            left += 1
                        right -= 1
                        left += 1
        return result

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1965114.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SPON IP网络对讲广播系统的命令执行漏洞复现实验

第一步&#xff1a;使用fofa搜索语句搜索 fofa地址&#xff1a;网络空间测绘&#xff0c;网络空间安全搜索引擎&#xff0c;网络空间搜索引擎&#xff0c;安全态势感知 - FOFA网络空间测绘系统 查询漏洞的语句icon_hash"-1830859634" 第二步&#xff1a;访问网址&…

LangChain大模型应用开发指南-传统编程范式思维的应用

LangChain大模型应用开发指南-传统编程范式思维的应用 上节课&#xff0c;我带领小伙伴们完成了baichuan2量化模型的OpenAI标准接口封装&#xff0c;并完成LangChain对大模型的调用与测试。 今天我们将正式开始LangChain大模型应用开发课程。 组件总览 上图为LangChain的组件与…

软件工程之应用数学

软件工程之应用数学 第 20 章&#xff1a;应用数学20.1 运筹方法20.1.1 网络计划技术20.1.2 线性规划20.1.3 决策论20.1.4 对策论 20.2 数学建模 第 20 章&#xff1a;应用数学 数学是一种严谨、缜密的科学&#xff0c;学习应用数学知识&#xff0c;可以培养系统架构设计师的抽…

机器学习三步走:手写BP神经网络(入门) --> 基于TensorFlow框架开发(开发) --> 基于预训练模型快速构建应用(应用)

目录 前言第一步&#xff1a;手写BP神经网络1 概念简介1.1 神经网络内的概念1.2 神经网络外的概念 2 类BPNetwork2.1 初始化2.2 激活函数2.2.1 Sigmod2.2.2 Linear2.2.3 Sigmod_derivative 2.3 损失函数2.4 前向传播2.5 后向传播2.6 训练模型2.7 预测2.8 绘制损失值变化曲线 **…

实验 19. 用户进程

已完成实验 已完成实验链接 简介 实验 19. 用户进程 总结 main函数创造了1个主线程&#xff0c;两个内核线程&#xff0c;两个用户进程。共5个PCB&#xff0c;进程PCB->pgdir为进程自己的页表首虚拟地址&#xff0c;线程为null。因此本次实验是五个进/线程在来回切换。他…

抖音素材网站有哪些?这几个高质量的抖音无水印素材网站分享

在抖音这个视觉与创意并重的平台上&#xff0c;选择合适的无水印视频素材是提升内容质量的关键。如果你正在寻找既能使你的视频内容更具吸引力&#xff0c;又能避免版权问题的优质素材&#xff0c;那么本文将为你详细介绍几个高质量的抖音无水印素材网站。从国内的蛙学网到国际…

双指针算法大总结!!看完这篇再也没有难的双指针题!!例题C++解法!

题源acwing、力扣 讲解双指针题目一&#xff1a;盛最多水的容器思路AC代码 题目二&#xff1a;查找总价格为目标值的两个商品思路AC代码 题目三&#xff1a;链表的中间节点思路AC代码 题目四&#xff1a;环形链表思路AC代码 题目五&#xff1a;反转字符串中的元音字符思路AC代码…

【Vulnhub靶场AI-WEB-1.0打靶教程】

第一步&#xff1a;查看虚拟机的ip 第二步&#xff1a;扫描ip下开放的80端口 第三步&#xff1a;扫描查到的ip地址下的目录 第四步&#xff1a;访问查到的目录 访问robot.txt 第五步:访问robot.txt显示出的目录 第六步&#xff1a;打开kali终端&#xff0c;使用sqlmap功能 sq…

【Vue3】标签的 ref 属性

【Vue3】标签的 ref 属性 背景简介开发环境开发步骤及源码 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。…

win10游戏出现错误代码0xc0000142是什么情况?几种方法修复错误代码0xc0000142

错误代码 "0xc0000142" 通常表示应用程序无法正确启动&#xff0c;这经常与系统文件损坏、兼容性问题或环境设置不当有关。下面列出了一些步骤&#xff0c;可能帮助你解决在Windows 10上运行游戏时遇到的0xc0000142错误。 快速修复错误代码0xc0000142问题 1. 以管理…

更新Win11后出现无法检测到相机的情况

使用腾讯会议的时候发现摄像头用不了&#xff0c;显示“未检测到摄像头”&#xff0c;打开设置显示“未找到任何相机” 试了很多方法都解决不了&#xff0c;后用了下面这种方法成功解决&#xff0c;相机就能用了 1.下载360驱动大师&#xff0c;检测下有没有要更新或者添加的驱…

希尔排序【C语言】

希尔排序 前言 在上一篇文章中我们了解了直接插入排序算法&#xff08;建议先阅读&#xff09;&#xff0c;但其实这个算法还是有一定优化空间的。而它优化之后&#xff0c;就变成了另一个大名鼎鼎的排序算法&#xff1a;希尔排序。 希尔排序(Shell’s Sort)是插入排序的一种…

PDF怎么转换成Word?这些工具一键搞定!

在日常生活中&#xff0c;我们经常遇到需要将PDF文件转换成Word文档的情况。PDF怎么转换成Word&#xff1f;一些工具的使用十分重要&#xff01;下文中就为大家推荐几个亲测好用的PDF转换工具。 一、Foxit PDF转换大师&#xff08;365客户端&#xff09; 链接&#xff1a;www…

【Story】编程迷航:从 “ 我怎么才学会 ? ” 到 “ 我怎么这么厉害 ! ”

目录 大学生编程入门指南&#xff1a;选择语言、制定计划与避坑技巧1. 选择适合的编程语言1.1 Python1.2 Java1.3 C/C1.4 JavaScript1.5 SQL 2. 制定有效的学习计划2.1 设定明确的目标2.2 制定学习时间表2.3 选择学习资源2.4 实践和项目 3. 避免常见学习陷阱3.1 避免过度焦虑3.…

7月31日学习笔记 基于域名,Ip,端口多虚拟主机配置以及上线商城系统

一&#xff0c;基于域名的虚拟主机 效果 劫持域名访问指定的文件夹的目录 步骤 1. vim /usr/local/nginx/conf/nginx.conf 2. 创建新的目录 mkdir /html/devopt/ 3. 在 devops 目录下添加新的 index.html 文件 4. 在 http 模块下添加新的 server 模块 1 . 设置监听的端…

数字的位操作——7、9、479、564、231、342

7. 整数反转(中等) 给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#xff09;。 示例 1&…

钢铁无组织排放的超低改造(朗观视觉)

朗观视觉小编观察发现&#xff1a;随着环保政策的日益严格和公众对环境质量要求的不断提高&#xff0c;钢铁行业作为重工业的代表&#xff0c;面临着巨大的环保压力。无组织排放作为钢铁企业环保治理的难点之一&#xff0c;如何实现超低排放成为行业关注的焦点。本文将从技术路…

MAC安装mysql以及配置环境变量

安装mysql 下载mysql,网址&#xff1a;MySQL :: Download MySQL Community Server 我下载的版本是mysql-9.0.1-macos14-arm64.dmg 打开&#xff0c;双击 一路点击继续安装即可&#xff1b; 最后需要给root设置密码后就安装完成了 但是打开终端输入mysql&#xff0c;依然显…

河南萌新联赛2024第(三)场:河南大学

传送门&#xff1a;河南萌新联赛2024第&#xff08;三&#xff09;场&#xff1a;河南大学_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ B 正则表达式 思路&#xff1a;模拟 代码&#xff1a; #include<bits/stdc.h> using namespace std; typedef long lo…

狗狗换毛期怎么办?家里狗毛遍地,狗毛空气净化器帮你解决

对于养狗家庭来说&#xff0c;换毛季节的到来无疑是一场家中的“毛发风暴”。特别是养如萨摩耶、金毛等大型长毛犬的朋友们&#xff0c;更是深有体会。每日即便精心梳理&#xff0c;家中仍难以避免地被层层狗毛所覆。狗狗时不时晃一下身体&#xff0c;抖动身上的毛发&#xff0…