第一行:n,表示h数组元素个数
第二行:n个h数组元素
第三行:m,表示w数组元素个数
第四行:m个w数组元素
上台表演学生人数
3 2 2 3 2 3 1
1
#思路清晰简单😆 import sys
def make(n1, h, n2, w):
h.sort()
w.sort()
res = 0
i = 0
for x in w:
if i < n1 and x >= h[i]:
i += 1
res += 1
return res
if __name__ == '__main__':
n1 = sys.stdin.readline().strip()
h = sys.stdin.readline().strip()
n2 = sys.stdin.readline().strip()
w = sys.stdin.readline().strip()
h = list(map(lambda x : int(x), h.split()))
w = list(map(lambda x : int(x), w.split()))
print(make(int(n1), h, int(n2), w))
import sys n=int(sys.stdin.readline().strip())#H数组元素个数 H=list(map(int,sys.stdin.readline().strip().split(' ')))#n个h数组元素 m=int(sys.stdin.readline().strip())#W元素的个数 W=list(map(int,sys.stdin.readline().strip().split(' ')))#m个W数组元素 H.sort() W.sort() ctn=0 while n and m: if W[m-1]>=H[n-1]: m-=1 n-=1 ctn+=1 elif W[m-1]<H[n-1]: n-=1 print(ctn)
思路:第一行:n,表示h数组元素个数 -- 表示小朋友个数 第二行:n个h数组元素 -- 表示不同得小朋友上台表演所需要获得的巧克力大小 第三行:m,表示w数组元素个数 -- 表示巧克力个数 第四行:m个w数组元素 -- 表示实际上每块巧克力的大小 先将h和w数组升序排列 要使表演的小朋友个数最多,则先让需要获得最小巧克力的小朋友先选,选择最小的符合条件的巧克力,此时巧克力列表删除取走的那一个巧克力,pop() 以此类推,第二个,第三个小朋友选择.... 当某一个小朋友有多个符合的巧克力大小可选择时,选择最小那个,结束这一个小朋友的选择。break
n = int(input("")) #表示小朋友个数 h_n = input('') #表示不同得小朋友上台表演所需要获得的巧克力大小 m = int(input("")) #表示巧克力个数 h_m = input('') #表示实际上每块巧克力的大小 needs_ch = [int(item) for item in h_n.split(' ')] needs_ch.sort() trues_ch = [int(item) for item in h_m.split(' ')] trues_ch.sort()num = 0 for i in needs_ch: for j in trues_ch: if j>=i: num+=1 trues_ch.pop(trues_ch.index(j)) #某个小朋友选择了最合适的巧克力,此块巧克力被弹出 break #某一个小朋友有多个符合的巧克力大小可选择时,选择最小那个,结束这一个小朋友的选择 print(num)
n = int(input()) h = list(map(int, input().split())) m = int(input()) w = list(map(int, input().split())) h.sort() w.sort() choc_num = 0 max_child = 0 flag_get = 0 for i in range(n): for j in range(choc_num, m): if w[j] >= h[i]: max_child += 1 choc_num = j + 1 flag_get = 1 break if flag_get == 0: break print(max_child)
def compare_choc(a, b, m): c = 0; t = m-1; for i in range(m-1, -1, -1): if t >= 0: for j in range(t, -1, -1): if a[i] <= b[j]: c =c+ 1; t = j-1; break; else: break; print(c) n = int(input()); h = input(); m = int(input()); w = input(); h1=sorted([int(i) for i in h.split()]); w1= sorted([int(j) for j in w.split()]); if n >= m: p = m; else: p = n; compare_choc(h1, w1, p);
# 六一儿童节,Python # 先排序,再按照小到大,满足巧克力分配,逐个让满足到的小朋友退出(i++)。 def tianji(n,h_sor,m,w_sor): result = 0 i = 0 if min(h_sor) > max(w_sor): return result else: for j in range(len(w_sor)): #del h_sor[h_posi] #del w_sor[w_posi] if i <= n-1: if w_sor[j] >= h_sor[i]: result = result + 1 i = i + 1 return result if __name__=='__main__': n = int(input()) h_vec = [int(t) for t in input().split(' ')] m = int(input()) w_vec = [int(t) for t in input().split(' ')] h_sor = sorted(h_vec) w_sor = sorted(w_vec) print(tianji(n,h_sor,m,w_sor))
# coding=utf-8 def fun(): n = int(raw_input()) #人数 wn = map(int,raw_input().split()) #每个人的权重 m = int(raw_input()) #巧克力数 wm = map(int,raw_input().split()) #每个巧克力的权重 wn.sort() wm.sort() result = 0 for i in range(m): if wn[result]<=wm[i]: result += 1 if result==n: break return result if __name__=='__main__': print(fun())