代码随想录算法训练营day7|● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18待做

news/2024/10/6 20:52:19/文章来源:https://www.cnblogs.com/tristan241001/p/18449385

学习资料:https://programmercarl.com/0015.三数之和.html#其他语言版本

学习记录:
454.四数相加(hash_dict,前两个数一组遍历a+b,后两个数一组遍历找0-(a+b))

点击查看代码
class Solution:def fourSumCount(self, nums1: List[int], nums2: List[int], nums3: List[int], nums4: List[int]) -> int:hash_map = dict()for i in nums1:for j in nums2:key=i+jhash_map[key]=hash_map.get(key, 0)+1count = 0for i in nums3:for j in nums4:key=0-(i+j)if key in hash_map:count += hash_map[key]return count
383.赎金信(类似于有效的字母异位字,只要note里字母统计个数小于等于magzinine里的统计字母个数,则返回True)
点击查看代码
class Solution:def canConstruct(self, ransomNote: str, magazine: str) -> bool:ran_list = [0]*26mag_list = [0]*26for i in ransomNote:index= ord(i)-ord('a')ran_list[index] += 1for i in magazine:index = ord(i)-ord('a')mag_list[index] += 1for i in range(26):if ran_list[i]<=mag_list[i]:passelse:return Falsereturn True
15.三数之和(不用hash表,用左右指针法,重点在于结果去重;初始数组排序;i代表a遍历全数组,left=i+1, right=nums.size-1;left和right向中间靠拢;因为要三个数所以left 点击查看代码
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 + 1right = len(nums)-1while right > left:sum = nums[i]+nums[left]+nums[right]if sum < 0:left += 1elif sum > 0:right -= 1else:result.append([nums[i], nums[left], nums[right]])# 在收获了一个结果后,对后续结果进行去重while right>left and nums[right]==nums[right-1]:right -= 1while right>left and nums[left]==nums[left+1]:left += 1left += 1right -= 1return result

PS:18题明天再做吧,假期结束啦,今天吃土豆烧排骨、甜椒炒肉、糖醋莲白,幸福~~~

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ch被动扫描学习

在渗透测试中,被动扫描就像斥候一样担任前驱搜查的任务,帮助后续的渗透攻击等的深入推进提供十分重要的信息。当然,正如一双锐利的眼和好的侦查工具是一名优秀侦察兵的标配,在进行渗透测试的时候,优秀的搜索引擎就是信息收集者的”夜行衣”和“望远镜”。借助它们我们可以…

Nuxt.js 应用中的 app:suspense:resolve 钩子详解

title: Nuxt.js 应用中的 app:suspense:resolve 钩子详解 date: 2024/10/6 updated: 2024/10/6 author: cmdragon excerpt: app:suspense:resolve 是一个强大的钩子,允许开发者在异步数据解析完成后的最后一步执行必要的处理。通过合理使用该钩子,我们可以优化组件的渲染…

多校A层冲刺NOIP2024模拟赛02 csp-s模拟9

多校A层冲刺NOIP2024模拟赛02 四道题因为暑假被拉去当模拟赛 暑假集训CSP提高模拟22 了,遂直接把赛后代码交了上去,然后就被通知换题了。 原 \(100+100+100+20\) 被在 accoders NOI 上被卡成了 \(100+100+90+10\) ,更改 long long 和 int 后达到了 \(100+100+100+30\) 。 \(…

败者树、置换选择排序、最佳归并树

败者树败者树用一个数组即可实现,而且,上图中的那些方块所代表的结点是不存储在败者树中的置换选择排序 置换选择排序的目的是构造出比工作区更长的初始归并段,而更长就意味着初始归并段会更少,可能会减少归并的趟数,进而减少读写磁盘次数来优化排序时间。 置换选择排序的…

Codeforces Rund 977 div2 个人题解(A~E1)

Codeforces Rund 977 div2 个人题解(A,B,C1,C2,E1) Dashboard - Codeforces Round 977 (Div. 2, based on COMPFEST 16 - Final Round) - Codeforces 火车头 #define _CRT_SECURE_NO_WARNINGS 1​#include <algorithm>#include <array>#include <bitset>#inc…

ide启动多个实例

ide启动多个实例 方法一: ide 2022.X及之后 Run=> Edit Configurations=> 选中项目=> “Build and run”栏=> Modify Options=> 选中“Allow multiple instances”然后就可以run多次项目了 但是要主要改端口 方法二: 先把项目打包,然后启动多个terminal,每个…

周鸿祎:用这10条打造你的完美的商业计划书(附详细讲解)

转载:周鸿祎:用这10条打造你的完美的商业计划书(附详细讲解)_产品 (sohu.com) 江湖上流传着一篇“360大佬周鸿祎版10页商业计划书PPT”,高屋建瓴的讲述了BP制作框架,很有价值。诚然,一个形式上外观精美,具有上有吸引力的BP让人赏心悦目,但更重要的还是有实实在在的内容…

DiLiGenT光度立体数据集

本文对DiLiGenT光度立体数据集进行了详细介绍。简介 ”DiLiGenT“ 光度立体数据集,全称为 calibrated Directional Lightings, objects of General reflectance, and ‘ground Truth’ shapes (normals),即使用标定过的定向光源,对一些具有常见反射率特性的物体进行光度立体…

Pool Kings All In One

Pool Kings All In One 泳池之王 Pool Kings - Mountain Paradise / 泳池之王 - 山间天堂 Utah waterfall MountainPool Kings All In One泳池之王demosPool Kings - Mountain Paradise / 泳池之王 - 山间天堂Utah waterfall Mountainhttps://vimeo.com/233842674 https://www.…

CHT

水电费是否收到fwe】今天探索一下CTH的电脑 PEPPA PIG放映室!tm的图怎么死了

visdom可视化工具

安装visdom可视化工具 pip install visdom -i 作者:太一吾鱼水 宣言:在此记录自己学习过程中的心得体会,同时积累经验,不断提高自己! 声明:博客写的比较乱,主要是自己看的。如果能对别人有帮助当然更好,不喜勿喷! 文章未经说明均属原创,学习笔记可…

测绘地理信息赋能新质生产力

在信息化与智能化浪潮的推动下,测绘地理信息作为连接现实世界与数字空间的桥梁,正逐步成为驱动经济社会发展的新质生产力。本文旨在深入探讨测绘地理信息如何通过技术创新与应用拓展,为各行各业赋能,塑造智慧社会的新面貌。一、测绘地理信息的转型之路随着卫星定位系统(如…