1 题目描述

2 解题思路

先设立一个哈希表,来得到不同的美味值分别有几道菜。然后对幂值和美味值进行遍历。

import math
class Solution(object):def countPairs(self, deliciousness):""":type deliciousness: List[int]:rtype: int"""deliciousness.sort()dit={}for i in deliciousness:if(i in dit):dit[i]+=1else:dit[i]=1
#字典,描述 每个不同的美味程度有几道不同的菜品n=int(math.log(deliciousness[-1]*2,2))
#这一组菜品中,美味程度最大的两个之和,也不会超过2的n次方count=0key=dit.keys()key.sort()for i in range(n+1):
#遍历2的幂for j in key:
#遍历一个菜品的美味值(为了防止重复计算,我们规定第一个菜品的美味值一定小于等于第二个菜品)print(j)tmp=2**i-j
#tmp表示另一个菜品if(j>tmp):break
#如果第一个菜品的美味值比第二个菜品的美味值大,那么说明这一组菜品已经在之前被遍历过了。elif(j==tmp and dit[j]==1):break
#如果这一个菜品正好等于2的幂的一半,但是只有一个,那么是不存在一组的elif(j==tmp and dit[j]>1):count+=(dit[j]-1)*dit[j]//2
#如果这一个菜品正好等于2的幂的一半,但是有多个,那么相当于C(n,2)组美味else:if(tmp not in dit):continue
#先看另一个菜品有没有count+=dit[j]*dit[tmp]return(count % (10**9 + 7))

文巾解题 1711. 大餐计数相关推荐

  1. 文巾解题 面试题 01.04. 回文排列

    1 题目描述 2 解题思路 2.1 哈希表 创建一个哈希表,记录每个元素出现的次数.如果出现次数为奇数的元素只有一个或者没有,那么就是一个回文排列 class Solution:def canPerm ...

  2. 文巾解题 15. 三数之和

    1 题目描述 2 解题思路 2.1 使用两数之和函数 这种做法目前超时了,如果大家有想到合适的减时间/剪枝的方法,欢迎私信or评论~ 两数之和的方法见文巾解题 1. 两数之和_刘文巾的博客-CSDN博 ...

  3. 文巾解题 342. 4的幂

    1 题目描述 2 解题思路 2.1 方法1 判断log函数的结果是不是整数 class Solution:def isPowerOfFour(self, n: int) -> bool:if(n ...

  4. 文巾解题 477. 汉明距离总和

    1 题目描述 2 解题思路 2.1 暴力两两比较 两个数字之间的汉明距离可以使用 文巾解题 461. 汉明距离_刘文巾的博客-CSDN博客 中的任何一种方法,但是因为这个是两两比较,时间复杂度比较高, ...

  5. 文巾解题 1035. 不相交的线

    1 题目描述 2 解题思路 k条互不相交的直线分别连接了数组 nums1和nums2的 k 对相等的元素,而且这 k 对相等的元素在两个数组中的相对顺序是一致的,因此,这 k 对相等的元素组成的序列即 ...

  6. 文巾解题 278. 第一个错误的版本

    1 题目描述 2 解题思路 二分查找见:二分查找详解_刘文巾的博客-CSDN博客 class Solution(object):def firstBadVersion(self, n):left=1r ...

  7. 文巾解题 704. 二分查找

    1 题目描述 2 解题思路 二分查找见: 二分查找详解_刘文巾的博客-CSDN博客 class Solution(object):def search(self, nums, target):left ...

  8. 文巾解题 627. 变更性别

    1 题目描述 2 解题思路 回顾一下 UPDATE语句 2.1 CASE语句 回顾一下CASE语句(见数据库笔记: SQL_刘文巾的博客-CSDN博客 第六节) UPDATE salary SET s ...

  9. 文巾解题 面试题 17.10. 主要元素

    1 题目描述 2 解题思路 因为是O(N)的时间复杂度和O(1)的空间复杂度,所以想到的是Boyer-Moore 投票算法.这个算法的原理可见:算法整理:Boyer-Moore 投票算法_刘文巾的博客 ...

最新文章

  1. 企业官网页面设计谨记三个要点!
  2. python代码大全p-基于python实现计算两组数据P值
  3. 做外贸如何获取同行的价格体系?转至【【Mr.Harris 原创】
  4. 启明云端分享|SSD201_自动升级固件与烧录MAC地址
  5. tesseract-ocr tips
  6. iis7 php5 isapi配置,Windows7 IIS7下以FastCgi和ISAPI方法安装配置PHP5教程
  7. 论文笔记_S2D.20_2017-ICCV-从单张RGB图像到精确尺度深度图评估的一种双支网络
  8. mac git 自动补全
  9. 小旭追女神-三国乱世(裸的单点线段树更新)
  10. 移动端网页、公众号兼容性问题记录
  11. 【每天一个 Linux 命令】ssh 命令
  12. 英语常见的固定搭配有哪些
  13. 如何删除07版word页眉页脚的横线
  14. 诚风老师-十年了,当年那帮做直销的穷小子都成了富豪
  15. Linux虚拟机快速搭建RabbitMQ(解压版)完整流程(简单明了、不亲测能写这么多)
  16. 名片管理系统python详解_取名字大全_免费男孩女孩起名字
  17. 【Face Recognition人脸识别】3. 单张图片人脸识别
  18. 英国手机漫谈之签手机喽!
  19. 尚硅谷前端-京东左侧导航栏及网易新闻列表练习——CSS
  20. Echarts系列之怎么让文字纵向显示

热门文章

  1. 只用来保存JQuery lightbox图片用的
  2. jquery技巧(持续更新。。)
  3. innodb_monitor
  4. Android:理想的框架开发母板——高焕堂
  5. agent proxy comparison
  6. 是AI就躲个飞机-纯Python实现人工智能
  7. php服务为什么开不了,php怎么打不开
  8. android edittext不可复制_Android EditText禁止复制粘贴
  9. 为什么正则化可以起到对模型容量进行控制_论文解读 | 基于正则化图神经网络的脑电情绪识别...
  10. 计数信号量的删除与状态查询