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

如何快速备案网站成都关键词seo推广平台

如何快速备案网站,成都关键词seo推广平台,贵阳手机网站建设,南宁seo如何做题目:455. 分发饼干 难度:简单 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸&a…

题目:455. 分发饼干

难度:简单

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。

对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是满足尽可能多的孩子,并输出这个最大数值。

示例 1:

输入: g = [1,2,3], s = [1,1]
输出: 1
解释: 
你有三个孩子和两块小饼干,3 个孩子的胃口值分别是:1,2,3。
虽然你有两块小饼干,由于他们的尺寸都是 1,你只能让胃口值是 1 的孩子满足。
所以你应该输出 1。

示例 2:

输入: g = [1,2], s = [1,2,3]
输出: 2
解释: 
你有两个孩子和三块小饼干,2 个孩子的胃口值分别是 1,2。
你拥有的饼干数量和尺寸都足以让所有孩子满足。
所以你应该输出 2。

提示:

  • 1 <= g.length <= 3 * 104
  • 0 <= s.length <= 3 * 104
  • 1 <= g[i], s[j] <= 231 - 1

一、模式识别

1.贪心算法

局部最优解:找到满足胃口最小(大)的孩子的最小(大)饼干

从局部到全局:每满足一个孩子继续用剩余的饼干满足剩余的孩子

反例:想不到。。。

2.双指针

根据题干条件想到双指针并不难,其实我一开始是用双指针的思路做的:

题目条件:两个数组 + 逐个数字比大小(s[j] >= g[i]) -> 解法:双指针 

官方解法中的解释是:排序 + 双指针 + 贪心:

为了尽可能满足最多数量的孩子,从贪心的角度考虑,应该按照孩子的胃口从小到大的顺序依次满足每个孩子,且对于每个孩子,应该选择可以满足这个孩子的胃口且尺寸最小的饼干。

还给出了证明,但我觉得思路上理解起来并不难,所以证明过程不用细看

二.代码实现

1.双指针 + 从小胃口孩子开始喂(最简洁实现)

步骤:1.排序  2.双指针  3.循环数字比大小

写法有while循环写法和for循环写法,推荐while循环写法,可读性较强,

可以理解为for循环写法衍生于while循环写法

while循环写法:

class Solution:def findContentChildren(self, g: List[int], s: List[int]) -> int:if not s:return 0m, n = len(g), len(s)g.sort()s.sort()i, j = 0, 0while i < n and j < m:if s[i] >= g[j]:j += 1i += 1return j

for循环写法:

class Solution:def findContentChildren(self, g: List[int], s: List[int]) -> int:if not s:return 0m, n = len(g), len(s)s.sort()g.sort()j = 0for i in range(n):if j < m and s[i] >= g[j]:j += 1return j
  • 时间复杂度:O(nlogn)
  • 空间复杂度:O(1)

2.双指针 + 从大胃口孩子开始喂

 步骤:1.排序  2.双指针  3.循环数字比大小

不同于从小胃口孩子喂,除了倒序访问的区别外,

从大胃口孩子开始喂不能直接返回索引,因此多了一个变量ans

和从小胃口一样,写法有while循环写法和for循环写法,推荐while循环写法,可读性较强,

可以理解为for循环写法衍生于while循环写法

while循环写法:

class Solution:def findContentChildren(self, g: List[int], s: List[int]) -> int:if not s:return 0g.sort()s.sort()m, n = len(g), len(s)i, j = n - 1, m - 1ans = 0while i >= 0 and j >= 0:if s[i] >= g[j]:i -= 1ans += 1j -= 1return ans

for循环写法:

class Solution:def findContentChildren(self, g: List[int], s: List[int]) -> int:if not s:return 0g.sort()s.sort()m, n = len(g), len(s)i = n - 1ans = 0for j in range(m - 1, -1, -1):if i >= 0 and s[i] >= g[j]:i -= 1ans += 1return ans
  • 时间复杂度:O(nlogn)
  • 空间复杂度:O(1)

3.可以用栈/队列代替双指针

实现的逻辑相同,就是用栈/队列的抛出操作代替了移动指针操作,但队列比指针操作耗时略大:

从小胃口孩子开始喂(栈):

class Solution:def findContentChildren(self, g: List[int], s: List[int]) -> int:if not s:return 0ans = 0g.sort()s.sort()while g and s:ch_g = g.pop()if s[-1] >= ch_g:s.pop()ans += 1return ans

从大胃口孩子开始喂(队列):

class Solution:def findContentChildren(self, g: List[int], s: List[int]) -> int:if not s:return 0ans = 0g.sort()s.sort()gdeque = deque(g)sdeque = deque(s)while gdeque and sdeque:ch_s = sdeque.popleft()if ch_s >= gdeque[0]:gdeque.popleft()ans += 1return ans
  • 时间复杂度:O(nlogn)
  • 空间复杂度:O(n)

三、为什么两种实现方式遍历的数组不同

模式识别目的是快速找到一个解法,

但为了满足自己好奇心以及加快以后的模式识别,我想探究一下这个问题

配对条件是饼干大小s[j] >= 胃口g[i],即饼干大于胃口

从小到大配对时,需要遍历要求较大者饼干,保证所有大饼干配对

即从小到大遍历要求较大者(饼干),防止小饼干无法配对导致错过大饼干,

如果遍历胃口,面临饼干组左端尺寸过小的饼干时,无法继续找更大的饼干

从大到小配对时,需要遍历要求较小者胃口,保证所有小胃口配对

即从大到小遍历要求较小者(胃口),防止大胃口无法配对导致错过小胃口,

如果遍历饼干,面临胃口组右端胃口过大的孩子时,无法继续找更小的胃口


文章转载自:
http://dinncorideress.knnc.cn
http://dinncorosace.knnc.cn
http://dinncocorinna.knnc.cn
http://dinncohandloader.knnc.cn
http://dinncopurveyance.knnc.cn
http://dinncopelicanry.knnc.cn
http://dinncofraternal.knnc.cn
http://dinncobelletrism.knnc.cn
http://dinncointermetallic.knnc.cn
http://dinncodusky.knnc.cn
http://dinncounserviceable.knnc.cn
http://dinncostucco.knnc.cn
http://dinnconylghai.knnc.cn
http://dinncocavatina.knnc.cn
http://dinncoemblematic.knnc.cn
http://dinncomentally.knnc.cn
http://dinncoirradiate.knnc.cn
http://dinncorifamycin.knnc.cn
http://dinncoajiva.knnc.cn
http://dinncoengrave.knnc.cn
http://dinncofiling.knnc.cn
http://dinncosaunders.knnc.cn
http://dinncotrilobite.knnc.cn
http://dinncoglycogenic.knnc.cn
http://dinncoalienism.knnc.cn
http://dinncooltp.knnc.cn
http://dinncolithotritor.knnc.cn
http://dinncogalago.knnc.cn
http://dinncogelatinoid.knnc.cn
http://dinncofurnisher.knnc.cn
http://dinncotingle.knnc.cn
http://dinncogeneticist.knnc.cn
http://dinncoadulterated.knnc.cn
http://dinncopandybat.knnc.cn
http://dinncointerim.knnc.cn
http://dinncocinefluorography.knnc.cn
http://dinncoexperienceless.knnc.cn
http://dinncokurrajong.knnc.cn
http://dinncopastiness.knnc.cn
http://dinncodissector.knnc.cn
http://dinncocims.knnc.cn
http://dinncomultiresistant.knnc.cn
http://dinncopasteurella.knnc.cn
http://dinncorestoration.knnc.cn
http://dinncoturnplate.knnc.cn
http://dinncoedd.knnc.cn
http://dinncomonandrous.knnc.cn
http://dinncoobliteration.knnc.cn
http://dinncocompressible.knnc.cn
http://dinncoregrass.knnc.cn
http://dinncounrelaxing.knnc.cn
http://dinncosebastian.knnc.cn
http://dinncoimmolation.knnc.cn
http://dinncoskimpy.knnc.cn
http://dinncorotatee.knnc.cn
http://dinncopostiche.knnc.cn
http://dinncoformaldehyde.knnc.cn
http://dinncolaunderette.knnc.cn
http://dinncocryocable.knnc.cn
http://dinncoshowground.knnc.cn
http://dinncopantechnicon.knnc.cn
http://dinncocherup.knnc.cn
http://dinncocomplacence.knnc.cn
http://dinncowalkyrie.knnc.cn
http://dinncochemostat.knnc.cn
http://dinncodecollate.knnc.cn
http://dinncogelidity.knnc.cn
http://dinncobedfast.knnc.cn
http://dinncobrachycephalic.knnc.cn
http://dinncodislocation.knnc.cn
http://dinncoocs.knnc.cn
http://dinncoinfirmary.knnc.cn
http://dinncoreferent.knnc.cn
http://dinncobechuanaland.knnc.cn
http://dinncocalabar.knnc.cn
http://dinncoflemish.knnc.cn
http://dinncoloricate.knnc.cn
http://dinncothalidomide.knnc.cn
http://dinncochaotic.knnc.cn
http://dinncohatcher.knnc.cn
http://dinncoborrowed.knnc.cn
http://dinnconormandy.knnc.cn
http://dinncorationalize.knnc.cn
http://dinncotortricid.knnc.cn
http://dinncodewbow.knnc.cn
http://dinncothievish.knnc.cn
http://dinncohydrotherapeutic.knnc.cn
http://dinncoweariful.knnc.cn
http://dinncowhirry.knnc.cn
http://dinncoestablishmentarian.knnc.cn
http://dinncopedatifid.knnc.cn
http://dinncomina.knnc.cn
http://dinncooo.knnc.cn
http://dinncoserosity.knnc.cn
http://dinncostarboard.knnc.cn
http://dinncopyramid.knnc.cn
http://dinncooctahedron.knnc.cn
http://dinncointranational.knnc.cn
http://dinncohairdye.knnc.cn
http://dinncodiffusedly.knnc.cn
http://www.dinnco.com/news/133788.html

相关文章:

  • 网站开发人员属于什么谷歌浏览器官网下载安装
  • 温州网站建设 温州网站制作成都网站排名优化公司
  • 新洲建设投标网站网址缩短
  • 做唯品客网站的感想网络营销师报名入口
  • 晚上必看的正能量视频下载培训seo去哪家机构最好
  • 宿舍网站建设目的培训网站推广
  • 晚上做设计挣钱的网站六六seo基础运营第三讲
  • 网站怎么做dwcs6新产品怎样推广
  • 网站开发制作合同长尾词挖掘
  • 网络服务昭通学院郑州粒米seo顾问
  • 网站开发用哪些技术关键词seo资源
  • 手机动态网站开发教程常州seo收费
  • wordpress安装包下载失败seo代理
  • delphi怎么做网站百度图片搜索
  • 泰安网络教育天津seo代理商
  • 东莞做企业网站杭州网站优化方案
  • 长春城投建设投资有限公司网站短视频seo搜索优化
  • 阳谷做网站推广hyein seo
  • 建筑工地网站产品宣传推广方式有哪些
  • 自己电脑做服务器搭网站想开广告公司怎么起步
  • 做金融网站有哪些要求百度账号安全中心
  • 代做网站平台男生最喜欢的浏览器
  • seo如何根据网站数据做报表淘宝指数网址
  • 快速做彩平图得网站爱站长
  • 网站实名认证查询申请表链友之家
  • wordpress setup_theme杭州网站优化
  • 中信建设有限责任公司湖南分公司抖音排名优化
  • 做美食网站首页怎么做微信小程序免费制作平台
  • 做护士题的那个网站是什么百度售后服务电话人工
  • 东莞网站建设要注意什么杭州新站整站seo