Golang 四数相加 leetcode454 map哈希表

四数相加 leetcode454

本题如果直接进行四次for循环,则时间复杂度为O(N^4),超出运行时间限制。
因此我们这里使用两个分别的for循环进行遍历,则时间复杂度为O(N2+N2).

/ 使用两遍for循环
func fourSumCount(nums1 []int, nums2 []int, nums3 []int, nums4 []int) int {
   

	index := 0

	record := map[int]int{
   }

	//首先对num3、nums4进行遍历,记录数据	考虑到可能每组有重复数字,每遍历到一次就+1
	for _, i1 := range nums3 {
   
		for _, i2 := range nums4 {
   
			record[i1+i2]++
		}

	}

	//然后再进行nums1、nums2的遍历
	for _, i1 := range nums1 {
   
		for _, i2 := range nums2 {
   
			//record对应数字是几,证明能得到这个数字的组合有几个,这里就加上对应的组合数
			if v, ok := record[-i1-i2]; ok {
   
				index = index + v
			}
		}

	}
	return index
}

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-11 09:02:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-11 09:02:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-11 09:02:02       82 阅读
  4. Python语言-面向对象

    2024-01-11 09:02:02       91 阅读

热门阅读

  1. Vue3-47-Pinia-修改全局状态变量值的方式

    2024-01-11 09:02:02       59 阅读
  2. 游戏后端如何实现服务器之间的负载均衡?

    2024-01-11 09:02:02       53 阅读
  3. 【软件测试】软件测试工程师的核心竞争力

    2024-01-11 09:02:02       49 阅读
  4. 【DNS】

    【DNS】

    2024-01-11 09:02:02      54 阅读
  5. PHP 微信小程序发货管理

    2024-01-11 09:02:02       59 阅读
  6. Vue3使用Pinia获取全局状态变量

    2024-01-11 09:02:02       54 阅读
  7. nginx geo模块使用 nginx识别ip归属地做跳转

    2024-01-11 09:02:02       47 阅读
  8. 深度剖析Redis:从基础到高级应用

    2024-01-11 09:02:02       47 阅读
  9. 【技能---Anaconda3常用命令使用入门】

    2024-01-11 09:02:02       49 阅读
  10. windows安装运行Apache James(基于spring的版本)

    2024-01-11 09:02:02       64 阅读
  11. python 安装 cv2报错 conda install PackagesNotFoundError

    2024-01-11 09:02:02       68 阅读
  12. 华纳云:在Conda中环境迁移有哪些步骤

    2024-01-11 09:02:02       52 阅读
  13. conda的安装资源链接

    2024-01-11 09:02:02       61 阅读