尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
代码随想录算法训练营第六天 | 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和
学习内容454.四数相加II给你四个整数数组 nums1、nums2、nums3 和 nums4 数组长度都是 n 请你计算有多少个元组 (i, j, k, l) 能满足0 i, j, k, l nnums1[i] nums2[j] nums3[k] nums4[l] 0classSolution:deffourSumCount(self,nums1:List[int],nums2:List[int],nums3:List[int],nums4:List[int])-int:hashmapdict()foriinnums1:forjinnums2:ifijinhashmap:hashmap[ij]1else:hashmap[ij]1count0foriinnums3:forjinnums4:key-i-jifkeyinhashmap:counthashmap[key]returncount学习心得先定义一个hashmap字典。将nums1nums2的值与出现次数统计到hashmap里之后再看-nums3-nums4的值在不在hashmap在的话则count更新加上刚刚统计的nums1nums2的出现次数383. 赎金信给你两个字符串ransomNote 和 magazine 判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以返回 true 否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。classSolution:defcanConstruct(self,ransomNote:str,magazine:str)-bool:shuzu[0]*26foriinstr(magazine):shuzu[ord(i)-ord(a)]1forjinstr(ransomNote):shuzu[ord(j)-ord(a)]-1foriinrange(len(shuzu)):ifshuzu[i]0:returnFalsereturnTrue学习心得定义一个26大小的的0值数组。先统计magazine里面各单词出现次数。再统计ransomNote里的每个字符出现则在数组相应单词位置次数-1。最后看数组里面有没有负数有的话说明ransomNote 不能由 magazine 里面的字符构成。15. 三数之和给你一个整数数组 nums 判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k 同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。注意答案中不可以包含重复的三元组。主要注意双指针和去重以及判断条件classSolution:defthreeSum(self,nums:list[int])-list[list[int]]:result[]nums.sort()foriinrange(len(nums)):ifnums[i]0:returnresultifi0andnums[i]nums[i-1]:continuelefti1rightlen(nums)-1whileleftright:sumsnums[i]nums[left]nums[right]ifsums0:leftleft1elifsums0:rightright-1else:result.append([nums[i],nums[left],nums[right]])whileleftrightandnums[left1]nums[left]:left1whileleftrightandnums[right-1]nums[right]:right-1left1right-1returnresult学习心得利用i和双指针leftright。首先sort()排序然后进入for循环判断数组里第一个元素是否0,是则返回[ ]。之后判断i0,nums[i-1] nums[i]去i的重复。定义left i 1。 right len(nums) - 1。之后进入循环while left right 判断sums是否0 0 0 ,大于0 则right - 1。小于0则left 1 等于零 则sums nums[ ] i left right 相加。 再进入left和right的去重。while left right and nums[left1] nums[left]: left。right同理。最后再来一个left和right–因为不一定会进入上一步的while循环。18. 四数之和给你一个由 n 个整数组成的数组 nums 和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] 若两个四元组元素一一对应则认为两个四元组重复0 a, b, c, d na、b、c 和 d 互不相同nums[a] nums[b] nums[c] nums[d] target你可以按 任意顺序 返回答案 。classSolution:deffourSum(self,nums:List[int],target:int)-List[List[int]]:nums.sort()result[]nlen(nums)foriinrange(n):ifnums[i]targetandtarget0:#剪枝breakifi0andnums[i]nums[i-1]:continueforjinrange(i1,n):ifnums[i]nums[j]targetandtarget0:#剪枝breakifji1andnums[j]nums[j-1]:continueleftj1rightn-1whileleftright:sumsnums[i]nums[j]nums[left]nums[right]ifsumstarget:right-1elifsumstarget:left1else:result.append([nums[i],nums[j],nums[left],nums[right]])whileleftrightandnums[left]nums[left1]:left1whileleftrightandnums[right]nums[right-1]:right-1left1right-1returnresult学习心得四数之和多了一个i和剪枝操作。其他没啥区别和三数之和。剪枝注意如果第一个数target and target0就break 第一个数加第二个数target and target0就break 其他都一样 i去重 j去重 left去重 right去重。
RELATED

相关推荐

【通义千问文档解析实战指南】:20年专家亲授5大避坑法则与3步精准提取技巧

【通义千问文档解析实战指南】:20年专家亲授5大避坑法则与3步精准提取技巧

更多请点击: https://intelliparadigm.com 第一章:通义千问文档解析的核心价值与适用边界 通义千问文档解析并非通用文本处理黑箱,而是一套面向结构化知识抽取与语义对齐的专用能力模块。其核心价值在于将非结构化技术文档(如API…

📅 2026/9/15 5:47:31
SpringBoot+Vue旅游网站管理系统开发指南

SpringBoot+Vue旅游网站管理系统开发指南

1. 项目概述:一个开箱即用的旅游网站管理系统 这套"旅游网站信息管理系统"采用当前主流的前后端分离架构,后端基于SpringBoot框架实现业务逻辑和数据处理,前端使用Vue.js构建用户界面,数据存储则采用MySQL关系型数据库。…

📅 2026/9/8 3:17:48
YimMenu终极指南:GTA5防崩溃工具完整使用教程

YimMenu终极指南:GTA5防崩溃工具完整使用教程

YimMenu终极指南:GTA5防崩溃工具完整使用教程 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …

📅 2026/9/13 10:59:16
MORE NEWS

更多资讯

📰

AI编程Agent闭环:工具选型检查项与协作调整

Loop 工程这个说法值得拆开看。公开描述把 AI 编程的当前阶段概括为:AI Agent 可以自主完成触发、执行、评估与重试构成的闭环。这四个词其实是一份现成的检查表——任何一个宣称支持 Agent 编程的工具,都可以放进这四个环节里逐项核对,看它覆…

📰

gs-quant 中 `Basket.get_url()` 完整指南:获取自定义篮子 Marquee 产品页链接

gs-quant 中 Basket.get_url() 完整指南:获取自定义篮子 Marquee 产品页链接 【免费下载链接】gs-quant Python toolkit for quantitative finance 项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant Basket.get_url() 是 gs-quant 中 Basket 类&a…

📰

aws-cli 实战:用 `codebuild batch-get-builds` 批量查询 AWS CodeBuild 构建详情

aws-cli 实战:用 codebuild batch-get-builds 批量查询 AWS CodeBuild 构建详情 【免费下载链接】aws-cli Universal Command Line Interface for Amazon Web Services 项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli 本篇技术指南聚焦 AWS CLI&…

📰

如何在库中安全维护 Wire Provider Set:哪些修改不破坏现有 injector?

如何在库中安全维护 Wire Provider Set:哪些修改不破坏现有 injector? 【免费下载链接】wire Compile-time Dependency Injection for Go 项目地址: https://gitcode.com/GitHub_Trending/wi/wire 当你的 Go 库通过 wire.NewSet 暴露 provider se…

📰

3步上手UI-TARS:让AI替你点击、输入、操控整个电脑

3步上手UI-TARS:让AI替你点击、输入、操控整个电脑 【免费下载链接】UI-TARS Pioneering Automated GUI Interaction with Native Agents 项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS 想象一下:你只需要说一句"打开文档、输入…

📰

DS2API OpenAI Chat接口完整参考:/v1/chat/completions 参数逐项说明

DS2API OpenAI Chat接口完整参考:/v1/chat/completions 参数逐项说明 【免费下载链接】ds2api DeepSeek-Compatible Middleware Interface: A technical exploration project in Go, focusing on high-concurrency protocol adaptation. It serves as a reference i…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬