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

网站提示危险网站免费制作自己的app

网站提示危险网站,免费制作自己的app,建站的注意事项,镇江市住房城乡建设局网站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.yayakq.cn/news/417540/

相关文章:

  • 企业网站建设运营的灵魂是什么wordpress调用菜单代码
  • 专注网站建设与制作网页设计包括哪些内容?
  • 建网站怎么备案推广产品最好的方式
  • 网站策划案内容微网站微网站
  • 青岛城乡建设局网站首页网址大全是什么浏览器
  • wordpress网站统计插件青岛网站设计推广
  • 制作网站的花多少钱wordpress模板查询
  • 平面设计可以做网站山东省作风建设网站
  • 科技公司php网站模版太原搭建网站的公司
  • 大麦网网站内似网站开发国产的主题wordpress
  • 商机互联做网站怎么样大连市开发区网站建设公司
  • 怎么做网站10步骤wordpress主题更新
  • 本机电脑怎么做网站北京ui设计app制作公司
  • 肃宁县网站建设游戏周边产品 做网站
  • 网站制作前景wordpress随机文章
  • 网站建设市场占有率网上接活做的网站
  • 婚礼婚庆网站建设需求分析企业网站建站意义
  • php 手机网站源码优化前网站现状分析
  • 国产成年做视频网站网站备案查询 站长
  • 徐州双语网站制作图片怎么做网站背景
  • 建设网站app广州免费发布信息网
  • 专业做网站排名公司电话网页实时翻译器
  • 楚雄做网站的公司视频网站seo怎么做
  • 网站建设与管理适合女生吗发布网站需要多少钱
  • 中卫网站设计公司招聘优化百度seo
  • 新手学网站建设爱站网seo综合查询
  • 电子商务网站建设系统功能wordpress提交审批
  • 安徽省网站肥建设网站能自己做的ppt网站
  • 网站的百度地图怎么做外贸 网站推广
  • windows搭建网站如何布局网站