首页 > 编程语言 >代码随想录算法训练营第六天| 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

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

时间:2023-06-13 14:55:22浏览次数:41  
标签:四数 15 target int selected 随想录 vector num1

454.四数相加II

1,难点:

  1,多个数组之间,会有重复出现的数组,如果单用multiset也是会出错的

  2,如果用mutliset,在使用 distance 找出来 equal_range的值的时候,也是会出现奇怪的错误的

2,正确思路

  1,把重复出现的节点,次数 存放到map种,然后进行遍历

3,代码:

 1 int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4)
 2 {
 3     int result = 0;
 4     unordered_map<int,int> selected;
 5     for (int num1 : nums1)
 6     {
 7         for (int num2 : nums2)
 8         {
 9             if (selected.find(num1 + num2) == selected.end())
10             {
11                 selected.insert(make_pair(num1 + num2, 0));
12             }
13             selected[num1 + num2] ++;
14         }
15     }
16 
17     for (int num3 : nums3)
18     {
19         for (int num4 : nums4)
20         {
21             //或许可以判断target里面有几个pair
22             auto target = selected.find(-(num3 + num4));
23             if (target != selected.end())
24             {
25                 result += target->second;
26             }
27         }
28     }
29 
30     return result;
31 }

 

标签:四数,15,target,int,selected,随想录,vector,num1
From: https://www.cnblogs.com/smartisn/p/17477509.html

相关文章

  • 操作系统 4804af79a21946779f8bd2b1e90e1579
    操作系统2^16=655362^10=10242^8=256选择杂项分时系统中,为使多个用户能够同时与系统交互,最关键的问题是:能在一短的时间内,使所有用户程序都能运行当用户数目为100时,为保证响应不超过2秒,此时时间片最大应为:2s=2000ms2000/100=20ms进程三种状态级变化(进程动态,程序静态)......
  • 代码随想录算法训练营第24天 | ● 理论基础 ● 77. 组合 - 第7章 回溯算法part01
     第七章 回溯算法part01今日内容: ●  理论基础 ●  77. 组合    详细布置   理论基础  其实在讲解二叉树的时候,就给大家介绍过回溯,这次正式开启回溯算法,大家可以先看视频,对回溯算法有一个整体的了解。 题目链接/文章讲解:https://programmercar......
  • 代码随想录算法训练营第25天 | ● 216.组合总和III ● 17.电话号码的字母组合 - 第7章
     第七章 回溯算法part02 今日内容:  ●  216.组合总和III●  17.电话号码的字母组合  详细布置   216.组合总和III  如果把 组合问题理解了,本题就容易一些了。  题目链接/文章讲解:https://programmercarl.com/0216.%E7%BB%84%E5%90%88%E6%80%B......
  • 代码随想录算法训练营第五天| 242.有效的字母异位词 , 349. 两个数组的交集 , 202. 快
    242.有效的字母异位词 繁冗版:1,思路:先建立两个map,对应两个字符串对应的字符,同时对他们进行计数,如果这两个数字相等,那么就是相等2,代码1boolisAnagram_complicate(strings,stringt)2{3unordered_map<char,int>existedCharBys;45for(autoch......
  • 代码随想录day06
     第三章 哈希表part01242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和 当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。242.有效的字母异位词注意点:字符串长度表示方法s.length()要带括号字符串取字符s......
  • Codeforces Round #415 (Div. 2)-C. Do you want a date?
    原题链接C.Doyouwantadate?timelimitpertestmemorylimitpertestinputoutputn1 to n.Sothe i-thhackedcomputerislocatedatthepoint xi.Moreoverthecoordinatesofallcomputersaredistinct.L......
  • 51nod-1523 非回文
    原题链接1523 非回文题目来源: CodeForces基准时间限制:1 秒空间限制:131072 KB分值: 40 难度:4级算法题一个字符串是非回文的,当且仅当,他只由前p个小写字母构成,而且他不包含长度大于等于2的回文子串。给出长度为n的非回文串s。请找出字典序......
  • Looksery Cup 2015-H. Degenerate Matrix(浮点数二分)
    原题链接H.DegenerateMatrixtimelimitpertestmemorylimitpertestinputoutputdeterminant ofamatrix 2 × 2degeneratenorm ||A|| ofamatrix AYouaregivenamatrix .Consideranydegeneratemat......
  • 51nod-1158 全是1的最大子矩阵(单调栈)
    原题链接1158 全是1的最大子矩阵基准时间限制:1 秒空间限制:131072 KB分值: 80 难度:5级算法题 收藏 关注Input第1行:2个数m,n中间用空格分隔(2 <= m,n <= 500)第2 - N + 1行:每行m个数,中间用空格分隔,均为0或1。......
  • 315. 计算右侧小于当前元素的个数
    labuladong题解难度困难987给你一个整数数组 nums ,按要求返回一个新数组 counts 。数组 counts 有该性质: counts[i] 的值是  nums[i] 右侧小于 nums[i] 的元素的数量。 示例1:输入:nums=[5,2,6,1]输出:[2,1,1,0]解释:5的右侧有2个更小的元素(2和......