当前位置: 首页 > news >正文

代码随想录算法训练营第七天 |第454题.四数相加II、383. 赎金信、第15题. 三数之和

第454题.四数相加II

思路:因为是统计次数,不用考虑坐标和去重复,那我就可以把value值给想成该target出现的次数。先用两个数组构造哈希表,然后再用一个O(n*n)的双重循环,遍历剩下两个数组,用count统计出现次数。 
func fourSumCount(nums1 []int, nums2 []int, nums3 []int, nums4 []int) int {//index valuehashmap_single := map[int]int{} for _, i2 := range nums1{for _,j2 := range nums2{hashmap_single[i2 + j2]++}}count := 0for _, i2  := range nums3{for _,j2 := range nums4{sum := -i2 - j2if value,find := hashmap_single[sum];find{count += value}}}return count
}

383. 赎金信

思路:将一个字符放进哈希表,然后遍历另一个数组,看他拥有的字符是不是能完全消除,字母够不够,够的话就能构造
func canConstruct(ransomNote string, magazine string) bool {hash := map[rune]int{}for _,i2 := range magazine{hash[i2]++}for _,i2 := range ransomNote{if hash[i2] == 0{return false}hash[i2]--}return true
}

  

383. 三数之和

思路:固定一个开头,然后向后遍历,依次存入hash表出现的数字,然后回头找。然后排序可以帮助去重。

 

func threeSum(nums []int) [][]int {var res [][]intn := len(nums)if n < 3 {return res}// 先排序,为去重做准备sort.Ints(nums)for i := 0; i < n-2; i++ {// 去重:第一个数重复时跳过(避免重复三元组)if i > 0 && nums[i] == nums[i-1] {continue}// 哈希表存储 i 之后的元素(值 -> 索引)seen := make(map[int]bool)for j := i + 1; j < n; j++ {target := -nums[i] - nums[j]// 检查哈希表中是否存在目标值(即第三个数)if seen[target] {// 找到有效三元组,加入结果集res = append(res, []int{nums[i], nums[j], target})// 去重:第二个数重复时跳过(避免同一i下的重复三元组)for j+1 < n && nums[j] == nums[j+1] {j++}}// 将当前j对应的元素存入哈希表,供后续j'(j' > j)查找seen[nums[j]] = true}}return res
}

  

http://www.hskmm.com/?act=detail&tid=15080

相关文章:

  • day06
  • 前沿速览:TrafficVLM、DeepSeek-Terminus、Qwen3-Omni、蚂蚁百灵、Wan2.2-Animate、Qianfan-VL
  • 代码随想录算法训练营第七天 | leetcode 454 383 15 18
  • 概率期望
  • Day2
  • 2025.9.23总结 - A
  • 8
  • 从3亿到48亿:NuGet周下载量跃迁背后的.NET生态演进与未来挑战(2019-2025)
  • 实用指南:PHP 使用说明
  • 9月23号
  • CF520E Pluses everywhere 题目分析
  • java里面的IO流分为哪几种,他们的区别是什么呢
  • ReLU函数及它的导数
  • 基础数论
  • 第一次个人编程作业-论文查重
  • 使用Claude代码子代理生成项目特定提交消息的技术实践
  • 走迷宫(BFS)
  • MyBatis分页的原理和分页插件的原理是什么
  • 达成度报告
  • 旋转图像-leetcode
  • 【ChipIntelli 系列】ASR部分——合成语言模型和多网络(多语种)切换
  • 内网环境怎么安装软件(用 yum / apt 下载离线包并搬入内网)
  • tanh函数
  • P13617 [ICPC 2024 APC] Bit Counting Sequence
  • 打一局吗(60pts 解法)
  • 软工9.23
  • 本地部署qwen-0.6b
  • 25分钟小练习
  • 第七章 手写数字识别V2