阿里4.1日笔试
唉,0分,太难受了 ,凉凉
笔试主要在做第二题,之前没准备好数据输入的代码,还浪费了一段时间(难受。。。。)
做第二题时,需要两层for循环,但是改代码的时候,发现第二层for循环死活改不好,就是进不去,最后只能在循环外面写了(心累),刚刚终于改完第二题的代码。
题目是说要打怪兽(一个箭打一个怪兽,打死这一个打下一个,都打完了就计算付出的代价,每支箭都有对应的代价,输出加和最小的那个,打不死就凉了(输出“No”)),用例的第一个数字表示测试数据的组数(两组),然后分别输入这几(两)组
第一组数据,首先给出怪兽的数量和箭的数量,然后给出每只怪兽的血量,然后给出每支箭的伤害值,然后给出每支箭的代价。
代码如下:
def solve(values2,values3,values4): values2.sort() c=list(zip(values4,values3)) c.sort() sum = 0 flag =[0]*len(values2) l = [i for i in range(len(values2))] l.reverse() for i in range(len(values3)): for j in l: if c[i][1]>=values2[j] and flag[j]==0: sum+=c[i][0] flag[j]=1 break if flag.count(0)==0: return sum else: return "No" import sys if __name__ == "__main__": # 读取第一行的n n = int(sys.stdin.readline().strip()) ans = 0 array = [] for i in range(n): # 读取每一行 line1 = sys.stdin.readline().strip() # 把每一行的数字分隔后转化成int列表 values1 = list(map(int, line1.split())) line2 = sys.stdin.readline().strip() values2 = list(map(int, line2.split())) line3 = sys.stdin.readline().strip() values3 = list(map(int, line3.split())) line4 = sys.stdin.readline().strip() values4 = list(map(int, line4.split())) array.append(solve(values2,values3,values4)) for i in array: print(i) # 测试用例 # 2 # 3 3 # 1 2 3 # 2 3 4 # 1 2 3 # 3 4 # 1 2 3 # 1 2 3 4 # 1 2 3 1唉,心痛。。。不知道还有没有面试😔