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

专业移动网站建设网站域名怎么注册

专业移动网站建设,网站域名怎么注册,武汉seo网络优化公司,图片在线编辑器免费Leetcode 2929. Distribute Candies Among Children II 1. 解题思路2. 代码实现 题目链接:2929. Distribute Candies Among Children II 1. 解题思路 这一题很惭愧,没能自力搞定,最后是看了大佬的思路之后才做出来的,唉…… 这…
  • Leetcode 2929. Distribute Candies Among Children II
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:2929. Distribute Candies Among Children II

1. 解题思路

这一题很惭愧,没能自力搞定,最后是看了大佬的思路之后才做出来的,唉……

这一题我最开始的思路就是一个无脑的动态规划,令dp(n, k)表示还有 k k k个人以及 n n n块糖时的分法数目即可,不过很快就遇到了超时问题,因为每一种情况下都得遍历取 1 1 1 m i n ( n , l i m i t ) \mathop{min}(n, \mathop{limit}) min(n,limit)的情况,虽然可以复用之前的结果,但是也架不住for循环太多次。

然后我的思路就变成了直接计算的方式,毕竟总的情况就是一个分堆问题,也就是 C n + 2 2 C_{n+2}^{2} Cn+22种情况,然后从中剔除掉不满足条件的情况即可。但是这里也得采用容斥定理,而且还是要涉及到只有一个用户或者两个用户超出limit的情况,其实还是很复杂,不太容易计算。

于是我就绝望了,然后去看了一下大佬的解答之后发现懵逼了,大佬的方法就是利用只有3个人的特点,考察第一个人分配 0 0 0 l i m i t \mathop{limit} limit的各种情况下后续可能的分堆方法数目,而这种在两个人的情况下就很简单,就是 n + 1 n+1 n+1个间隔当中如何插入一个挡板使得两侧元素都不多于 l i m i t \mathop{limit} limit,数学上可以直接给出答案。

由此,问题就在 O ( N ) O(N) O(N)的算法复杂度下搞定了……

2. 代码实现

给出python代码实现如下:

class Solution:def distributeCandies(self, n: int, limit: int) -> int:if n <= limit:return (n+2) * (n+1) // 2ans = 0for i in range(min(n+1, limit+1)):m = n-ians += min(m+1, max(0, limit*2-m+1))return ans

提交代码评测得到:耗时876ms,占用内存16.1MB。

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

相关文章:

  • 网站建设需要哪些硬件百度指数排名
  • 2017年网站开发用什么语言找培训机构的app
  • 澳门响应式网站建设seo入门黑帽培训教程
  • 有哪些网站可以做微商口碑营销案例2021
  • 百度推广要不要建网站网络平台建设及运营方案
  • 大型网站开发考试查网址
  • 网站建设业务市场营销论文搜索优化
  • 黄页88企业名录seo怎么优化武汉厂商
  • 触摸屏网站如何做泰州seo网络公司
  • 银川app购物网站制作公司搜狗收录入口
  • 做单页网站要多少钱wordpress免费网站
  • 网站建设性价比高优化设计官网
  • 电脑手机网站相互跳转西安seo关键词排名优化
  • 一般做网站用什么字体比较合适搜索引擎营销是什么
  • 去什么网站发贴做推广seo及网络推广招聘
  • 如何批量建站什么是互联网营销
  • 哈尔滨网站建设如何搭建一个网站平台
  • 哪些网站可以做任务网络营销推广的基本手段
  • 互联网舆情报告什么是seo营销
  • 餐饮商家做网站的好处沈阳关键词优化费用
  • 如何把网站的文字编辑网站页面优化内容包括哪些
  • 安徽做公司网站哪家好销售策略和营销策略
  • 做游戏都需要什么网站吗域名注册腾讯云
  • 北京建设厅网站谷歌关键词搜索
  • 如何识别一个网站是否做的好谷歌关键词挖掘工具
  • 网站建设专家网店营销推广
  • 做试玩网站搜索引擎优化答案
  • 外贸家具网站百度引擎搜索网址
  • 公司网站的栏目设置肇庆seo优化
  • 如何制作一个论坛网站网络服务器配置与管理