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

长沙好的网站优化品牌友情网站

长沙好的网站优化品牌,友情网站,贵州省遵义市人民政府网站,网站代理维护day27【LeetCode】454. 四数相加 II 1.题目描述 附上题目链接&#xff1a;四数相加 II 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] …

day27【LeetCode】454. 四数相加 II

1.题目描述

附上题目链接:四数相加 II

给你四个整数数组 nums1nums2nums3nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:

  • 0 <= i, j, k, l < n
  • nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0

示例 1:

输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]
输出:2
解释:
两个元组如下:
1. (0, 0, 0, 1) -> nums1[0] + nums2[0] + nums3[0] + nums4[1] = 1 + (-2) + (-1) + 2 = 0
2. (1, 1, 0, 0) -> nums1[1] + nums2[1] + nums3[0] + nums4[0] = 2 + (-1) + (-1) + 0 = 0

示例 2:

输入:nums1 = [0], nums2 = [0], nums3 = [0], nums4 = [0]
输出:1

2.题解

c++
(写法一)
class Solution {
public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {unordered_map<int,int> mymap;int count=0;for(int a : nums1){for(int b : nums2){mymap[a+b]++;}}for(int c:nums3){for(int d:nums4){if(mymap.find(0-(c+d)) != mymap.end()){count += mymap[0-(c+d)];}}}return count;}
};

解读:

  1. 定义了一个 unordered_map<int, int> 类型的哈希表 mymap,用于存储两个数组中元素的和以及对应的出现次数。
  2. 遍历 nums1 和 nums2 两个数组,将两个数组中元素两两相加的结果存入哈希表 mymap 中。
  3. 再次遍历 nums3 和 nums4 两个数组,在遍历过程中,判断哈希表中是否存在 -(c+d) 这个值,若存在,则将对应的数量累加到 count 中。
  4. 最终返回 count,即满足条件的两两相加等于 0 的组合数量。
(写法二)
public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {unordered_map<int,int> mymap;int count=0;for(int a : nums1){for(int b : nums2){mymap[a+b]++;}}for(int c:nums3){for(int d:nums4){if(mymap.count(-c-d)){count += mymap[-c-d];}}}return count;}
};

本质是一样的,只不过在寻找对应数的时候,用的是count函数 以及简化了写法。

python
(版本一)使用字典
class Solution:def fourSumCount(self, nums1: List[int], nums2: List[int], nums3: List[int], nums4: List[int]) -> int:mymap = dict()count = 0for a in nums1:for b in nums2:if a+b in mymap:mymap[a+b] += 1else:mymap[a+b] = 1for c in nums3:for d in nums4:if -c-d in mymap:count += mymap[-c-d]return count

第一个if那儿,可以换成下面这种写法,一行搞定。

mymap[a+b] = mymap.get(a+b, 0) + 1
(版本二)使用defaultdict
class Solution:def fourSumCount(self, nums1: List[int], nums2: List[int], nums3: List[int], nums4: List[int]) -> int:rec = defaultdict(int)count = 0for i in nums1:for j in nums2:rec[i+j] += 1for i in nums3:for j in nums4:count += rec.get((-i-j),0)return count
(版本三)使用counter
class Solution:def fourSumCount(self, nums1: List[int], nums2: List[int], nums3: List[int], nums4: List[int]) -> int:rec = collections.Counter(i+j for i in nums1 for j in nums2)count = 0for i in nums3:for j in nums4:if -i-j in rec:count += rec[-i-j]return count

ok了,就到这里叭~~~

如果觉得作者写的不错,求给博主一个大大的点赞支持一下,你们的支持是我更新的最大动力!

如果觉得作者写的不错,求给博主一个大大的点赞支持一下,你们的支持是我更新的最大动力!

如果觉得作者写的不错,求给博主一个大大的点赞支持一下,你们的支持是我更新的最大动力!

http://www.hkea.cn/news/276447/

相关文章:

  • 长春网站开发培训价格google play三件套
  • 做生存分析的网站有哪些国外新闻最新消息
  • 济南网站优化收费百度互联网营销
  • bootstrap响应网站模板下载发帖推广百度首页
  • 动态网站上的查询怎么做新媒体运营培训学校
  • 网站开发人员必备技能百度优化推广
  • 花都 网站建设百度推广怎么添加关键词
  • 开发公司成本部职责岗位职责和流程苏州网站建设优化
  • 湛江网站制作系统seo排名需要多少钱
  • 城乡现代社区建设seo关键词推广案例
  • 旅游网站开发外文文献关键洞察力
  • 大学生asp网站开发的实训周长沙百度快速优化
  • 黑龙江省建设网站百度投流运营
  • 网站关键词太多好不好兰州seo整站优化服务商
  • 义乌网站设计网店推广策划方案
  • 无锡网站优化工作室网站关键词排名优化推广软件
  • 长沙做网站的公司亚马逊seo什么意思
  • 仪征建设银行官方网站怎么优化一个网站
  • 那个网站可以查询美做空基金宁波网站推广平台效果好
  • 杨凌企业网站建设天津seo优化
  • 建设网站的工具免费b站在线观看人数在哪儿
  • 毕业设计餐饮网站建设国内前10电商代运营公司
  • 日本b2b网站市场调研的步骤
  • 强企网做网站网店推广有哪些
  • 博物馆网站建设策划书公司如何在百度宣传
  • 做cpa广告网站教程百度sem推广具体做什么
  • 免费网站建站WWW222国际军事最新消息今天
  • 做网站软件miscrosoft云服务器
  • 如何做盗版小说网站最经典的营销案例
  • 设计类的网站和简介关键词优化推广排名多少钱