楼主咱俩一套卷纸,第一题没交上求大家帮我看看思路对不对.... 我的思路是最后a肯定要拿完,所以答案一定是sum(a)-(所有减的数的和) 然后既然最大和,肯定要减越少越好,每次数相减都要减去len(当前a)-1个b中的数,要让这些减数的和最小,每次都找b中最小的len(当前a)-1个数去减对应ai,因此给b排序,每次pop出b最大的数使剩下的是b中最小的len(当前a)-1个数,然后这一轮减数的和就是sum(b),更新减数总值sub+=sum(b)直到取到最后一个a中的数,最后用sum(a)-sub即可。。。。 na = 5 nb = 5 a = [10,20,30,40,50] b = [4,5,6,7,8] b_sort = sorted(b) sub = 0 for i in range(na-1): b_sort.pop() sub += sum(b_sort) res = sum(a)-sub print(res)