牛客網:六一兒童節,老師帶了很多好喫的巧克力到幼兒園。每塊巧克力j的重量爲w[j],對於每個小朋友i,當他分到的巧克力大小達到h[i] (即w[j]>=h[i]),

題目描述

六一兒童節,老師帶了很多好喫的巧克力到幼兒園。每塊巧克力j的重量爲w[j],對於每個小朋友i,當他分到的巧克力大小達到h[i] (即w[j]>=h[i]),他纔會上去表演節目。老師的目標是將巧克力分發給孩子們,使得最多的小孩上臺表演。可以保證每個w[i]> 0且不能將多塊巧克力分給一個孩子或將一塊分給多個孩子。

輸入描述:

第一行:n,表示h數組元素個數
 第二行:n個h數組元素
 第三行:m,表示w數組元素個數
 第四行:m個w數組元素

輸出描述:

上臺表演學生人數

示例1

輸入

複製

3 
 2 2 3
 2
 3 1 

輸出

複製

1

代碼+解析:

#!D:/workplace/python
# -*- coding: utf-8 -*-
# @File  : 六一兒童節.py
# @Author: WangYe
# @Date  : 2019/3/6
# @Software: PyCharm
"""
輸入
3
 2 2 3
 2
 3 1
輸出
複製
1
"""

"""
思路:先逆序,然後臨近匹配。例如: 4 2 2 1  和  3  2
那最後肯定是   4對3,然後2對2 

"""

N = int(input())
N_list = input()
N_list1 = N_list.split(" ")
child= []
for a in N_list1:
    child.append(int(a))

M = int(input())
M_list = input()
M_list1 = M_list.split(" ")
sugar = []

for b in M_list1:
    sugar.append(int(b))

child.sort(reverse = True)   #逆序
sugar.sort(reverse = True)

X = []  #存儲巧克力
Y = []   #存儲孩子座標
temp = 0
for q in range(M):
    for w in range(temp,N):

        if  sugar[q] >= child[w]:
            X.append(q)

            temp = w   #防止supar中出現重複匹配
            break
    if temp == N-1:  #當直接到最後一個child時,直接跳出
        break


if len(X)>N:  #防止sugar的數量大於child
    print(N)
else:
    print(len(X))  #正常輸出

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章