首页 > 编程语言 >leedcode-分发饼干(贪心算法)

leedcode-分发饼干(贪心算法)

时间:2024-05-07 14:44:26浏览次数:26  
标签:cookies 饼干 int leedcode len num mydict children 贪心

自己写的,没有使用排序 ,会超出时间限制:

class Solution:
    def findContentChildren(self, g: List[int], s: List[int]) -> int:
        if len(s)==0:
            return 0
        count=0
        for i in range(len(g)):
            mydict = {}
            for j in range(len(s)):
                if s[j]==g[i]:
                    s[j]=-100
                    count+=1
                    mydict={}
                    break
                elif s[j]>g[i] :
                    mydict.update({s[j]:j})
            if len(mydict)!=0:
                min_key=min(mydict.keys())
                s[mydict[min_key]]=-100
                count += 1

        return count

使用sort():

class Solution:
    def findContentChildren(self, children: List[int], cookies: List[int]) -> int:
        # 将孩子的胃口和饼干排序
        children.sort()
        cookies.sort()
        # 孩子的数量
        num_children = len(children)
        # 饼干的数量
        num_cookies = len(cookies)
        # 记录结果
        satisfied_children = 0 
        for i in range(num_cookies):
            # 从胃口小的孩子开始喂
            if satisfied_children < num_children and children[satisfied_children] <= cookies[i]:
                satisfied_children += 1
        return satisfied_children

 

标签:cookies,饼干,int,leedcode,len,num,mydict,children,贪心
From: https://www.cnblogs.com/yyyjw/p/18177289

相关文章

  • 一些贪心的解题报告
    一些贪心的解题报告贪心题一般来说都是观察结论远简单于严谨证明,所以不会过多的去证明。1.Treecompass题目来源codeforcesdiv1934Chttps://codeforces.com/problemset/problem/1943/C题面翻译给定一棵节点数为\(n\)的树(\(1\len\le2\cdot10^3\)),一开始节点都是白色......
  • leedcode-排列硬币
    自己写的:importmathclassSolution:defarrangeCoins(self,n:int)->int:#计算判别式discriminant=1+8*n#计算根root1=(-1+math.sqrt(discriminant))/2#返回地板取整后的根returnmath.floo......
  • leedcode-字符串中的单词数
    classSolution:defcountSegments(self,s:str)->int:n=len(s)#如果字符串长度为1且不是空格,则只有一个段ifn==1ands[0]!='':return1#如果字符串长度为1且是空格,则没有段ifn==1ands[0]==......
  • 说说你对贪心算法、回溯算法的理解?应用场景?
    一、贪心算法贪心算法,又称贪婪算法,是算法设计中的一种思想其期待每一个阶段都是局部最优的选择,从而达到全局最优,但是结果并不一定是最优的举个零钱兑换的例子,如果你有1元、2元、5元的钱币数张,用于兑换一定的金额,但是要求兑换的钱币张数最少如果现在你要兑换11元,按照贪心算法......
  • leedcode-
    自己写的:classSolution:defaddStrings(self,num1:str,num2:str)->str:#将两个字符串转换为整数num1_int=self.strToInt(num1)num2_int=self.strToInt(num2)#将两个整数相加,并将结果转换为字符串res=......
  • leedcode-第三大的数
    自己写的,用时很长fromtypingimportListclassSolution:defthirdMax(self,nums:List[int])->int:#计算输入列表的长度n=len(nums)#对列表进行冒泡排序,将较大的元素排在前面foriinrange(n-1):forjinra......
  • leedcode-
    自己写的fromtypingimportListclassSolution:deffizzBuzz(self,n:int)->List[str]:#初始化结果列表res=[]#FizzBuzz对应的字符串列表myli=["Fizz","Buzz","FizzBuzz"]#遍历1到......
  • 36天【代码随想录算法训练营34期】第八章 贪心算法 part05( ● 435. 无重叠区间 ● 7
    435.无重叠区间classSolution:deferaseOverlapIntervals(self,intervals:List[List[int]])->int:count=0intervals.sort(key=lambdax:x[0])foriinrange(1,len(intervals)):ifintervals[i][0]<intervals[i-......
  • leedcode-最长回文串
    自己写的:classSolution:deflongestPalindrome(self,s:str)->int:count=0#用于计算最长回文串的长度hash={}#用于统计每个字符出现的次数的字典#统计每个字符出现的次数foriins:ifnothash.get(i):......
  • leedcode-数字转换为十六进制数
    自己写的,先整数转二进制,再切片二进制转16进制classSolution:deftoHex(self,num:int)->str:#处理特殊情况:当num为0时,直接返回'0'ifnum==0:return'0'#定义十六进制字母的映射关系my_dict={10:......