如何排列列表 A 以使列表 A 的最大元素数大于另一个列表 B?
例子:
A='3 6 7 5 3 5 6 2 9 1'
B='2 7 0 9 3 6 0 6 2 6'
answer=7 .....如果我对列表进行排序,
sListA = [1, 2, 3, 3, 5, 5, 6, 6, 7, 9]
sListB = [0, 0, 2, 2, 3, 6, 6, 6, 7, 9]
#if sListA[i]>sListB[j]: count +=1
有5个实例 sListA[i] > sListB[j]
但我们需要最大化 sListA[i] > sListB[j].. 的实例,即 7
如果 sListA 是[1, 2, 3, 3, 5, 7, 9, 5, 6, 6]
和 slistB 是[0, 0, 2, 2, 3, 6, 6, 6, 7, 9]
那么7个实例sListA[i] > sListB[j]将是可能的..
这是我的代码:
def main():
listA=list(map(int,A.rstrip().split()))
listB=list(map(int,B.rstrip().split()))
sListA=sorted(listA)
sListB=sorted(listB)
count=0
for (i,j) in map(sListA,sListB):
if sListA[i]>sListB[j]:
count+=1
print(count)
main()
但这仅从排序列表中计算,我需要找到一种方法将元素与 sListA 中的下一个最大元素交换,sListA[i]<sListB[j]
以最大化 sListA[i]>sListB[j] 的实例