Leetcode1711. 大餐计数[C++题解]:哈希表和枚举
文章目录
- 本题分析
- 题目链接
本题分析
大餐 是指 恰好包含两道不同餐品 的一餐,其美味程度之和等于 2 的幂。
注意,只要餐品下标不同,就可以认为是不同的餐品,即便它们的美味程度相同。
示例
输入:deliciousness = [1,3,5,7,9]
输出:4
解释:大餐的美味程度组合为 (1,3) 、(1,7) 、(3,5) 和 (7,9) 。
它们各自的美味程度之和分别为 4 、8 、8 和 16 ,都是 2 的幂。
题意重述:给定一个数组a[ ],求ai+aj=2n(n=0,1,...,21.i≠j)a_i+a_j=2^n(n=0,1,...,21. \\ i≠j)ai+aj=2n(n=0,1,...,21.i=j)的种数
枚举数组中的每个元素aka_kak,对于数组中a0−ak−1a_{0} -a_{k-1}a0−ak−1这些元素(暂时令为t),查找有多少个t满足t+ak=2n(n=0,1,...,21)t+a_k=2^n(n=0,1,...,21)t+ak=2n(n=0,1,...,21)。
使用哈希表unordered_map
,遍历完一个x: a[ ] ,使其在哈希表中的值++。
ac代码
class Solution {public:int countPairs(vector<int>& d) {int res=0,mod=1e9+7;unordered_map<int,int> hash;//哈希表for(auto x:d){for(int i=0;i<=21;i++){int t =(1<<i)-x; //位运算优化2的i次方if(hash.count(t))res= (res+hash[t]) % mod; //勿忘取模}hash[x]++; //d数组中遍历到的每个元素都要在hash表中记录。}return res;}
};
题目链接
Leetcode1711. 大餐计数
Leetcode1711. 大餐计数[C++题解]:哈希表和枚举相关推荐
- PAT甲级1145 Hashing - Average Search Time:[C++题解]哈希表、哈希表开放寻址法、二次探测法、求平均查找次数
文章目录 题目分析 题目链接 题目分析 来源:acwing 本题的分析见另一道PAT的题目:PAT甲级1078 Hashing:[C++题解]哈希表.哈希表开放寻址法.二次探测法链接的题目就是让建立h ...
- PAT甲级1092 To Buy or Not to Buy :[C++题解]哈希表
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析 用unordered_map存每种珠子的个数,商店有的加上,伊娃需要的减去.这样哈希表中存的就是每种珠子的净值.大于0表示多余的,小于 ...
- PAT甲级1121 Damn Single :[C++题解]哈希表、结构体
文章目录 题目分析 题目来源 题目分析 来源:acwing 思路:一对伴侣存入一个结构体中.查询的集合放入哈希表unordered_set<int> S;中.然后遍历每一对伴侣,如果同时存 ...
- PAT甲级1116 Come on! Let‘s C:[C++题解]哈希表、素数
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:使用哈希表存一下每个id获得奖,然后查询输出即可. ac代码 #include<bits/stdc++.h> using ...
- PAT甲级1124 Raffle for Weibo Followers :[C++题解]哈希表、微博转发抽奖
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:开一个哈希表存已经中将的用户,避免重复发奖. 遍历所有m条姓名,从第一个中奖的开始,依次模拟即可. ac代码 #include< ...
- PAT甲级1078 Hashing:[C++题解]哈希表、哈希表开放寻址法、二次探测法
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 本题建立hash表是利用只具有正增量的二次探测法来解决冲突, 索引 = 数 % 哈希表的大小 如果映射到同一个索引idx,hash表 ...
- PAT甲级1149 Dangerous Goods Packaging :[C++题解]哈希表、逆向思维
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 本题要反着想:先把所有询问存起来,每个询问存在一个hash表中.然后对于每对不相容的物品,查看是否同时在一个hash表中. ac代码 ...
- PAT甲级1048 Find Coins :[C++题解]哈希表、两个硬币之和为定值
文章目录 题目分析 题目链接 题目分析 来源:acwing 题意:找两个数,和为定值. 分析:本题在各大OJ上几乎都有, 反正在Leetcode上做过.本题有两种常见的解法,一种是双指针,另一种是用哈 ...
- PAT甲级1144 The Missing Number:[C++题解]哈希表
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 把所有的数放进一个hash表,然后从1开始遍历,看每个数是不是在hash表中,输出第一个不在表中的元素. ac代码 #include ...
最新文章
- Django视图之类视图与中间件
- php谁写的,谁写过 PHP的 demo? 我写了一个 返回3301 求助
- layui d多文件上传
- 图说:为什么Java中的字符串被定义为不可变的
- 算法入门篇二 认识O(NlogN)的排序
- qt int转换成qstring_Qt 加载cern-root库 并调用root类
- php7 memcached sasl,Mac安装memcached扩展支持sasl
- 罗永浩直播又翻车?网友吐槽半价车是黑幕,本人回应
- 该网站可能含有恶意软件,有可能会危害您的电脑 清除办法
- 数据洞察|Qtum量子链4月主网报告
- DenseNet介绍
- 2021华为杯数学建模获奖经验分享
- linux ascii游戏,linux – Bash ASCII实现
- pr中音频转场的介绍和使用
- 【数字IC/FPGA】时钟无毛刺切换
- 错误:未报告的异常错误,必须对其进行捕获或声明以便抛出
- Photoshop去除图片水印
- js数字转字符串和字符串转数字的方法
- SolidWorks快速绘制齿轮模型
- 重磅丨云和恩墨zCloud数据库云管平台2.0版本发布
热门文章
- cocos2d-x 3.0 常见问题及解决
- 把自己编写的python模块添加到PYTHONPATH上
- 程序员之工具杂烩(一)
- 【Linux学习】Linux系统管理2—作业调度
- Oracle 10G 全新创建数据库过程(暂记)
- 做报表时用到的一个存储过程
- cad lisp 背景遮罩_给文字批量添加边界偏移因子为1.1(或其他值)的背景遮罩的源程序(有详细注解)...
- python爬虫如何运行在web_Python Web爬网-使用爬虫进行测试
- 【Python】纯代码通过神经网络实现线性回归的拟合
- 【控制】如何入门自动控制理论