力扣刷题 day51:10-21

1.分发饼干

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

对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。力扣刷题 day51:10-21_第1张图片

方法一:排序 

#方法一:排序
def findContentChildren(g,s):
    g.sort()
    s.sort() #先排序
    res=0 #记录第几个人
    for i in range(len(s)):
        if res

2.相对名次 

给你一个长度为 n 的整数数组 score ,其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。

运动员将根据得分 决定名次 ,其中名次第 1 的运动员得分最高,名次第 2 的运动员得分第 2 高,依此类推。运动员的名次决定了他们的获奖情况:

名次第 1 的运动员获金牌 "Gold Medal" 。
名次第 2 的运动员获银牌 "Silver Medal" 。
名次第 3 的运动员获铜牌 "Bronze Medal" 。
从名次第 4 到第 n 的运动员,只能获得他们的名次编号(即,名次第 x 的运动员获得编号 "x")。
使用长度为 n 的数组 answer 返回获奖,其中 answer[i] 是第 i 位运动员的获奖情况。力扣刷题 day51:10-21_第2张图片

方法一:排序+字典 

#方法一:排序+字典
def findRelativeRanks(score):
    tem=sorted(score,reverse=True) #从大到小排序,并且用tem接收排序后的数组
    a=["Gold Medal","Silver Medal","Bronze Medal"] #排名
    dic={} #字典保存对应的名次
    for i in range(len(tem)):
        if i<3:
            dic[tem[i]]=a[i]
        else:
            dic[tem[i]]=str(i+1)
    return [dic[i] for i in score] #按照原来的顺序

你可能感兴趣的:(力扣刷题,leetcode,算法,数据结构)