美妙的约会

题目描述
牛牛和妞妞在一天晚上决定一起去看一场情人节演唱会,可是由于这场演唱会实在太出名了,有很多情侣都来观看,牛牛和妞妞不小心被人流冲散了!
维持秩序的人决定,让大家排成一列,相邻两个进去的人(2k-1和2k,k为正整数)坐在相邻座位。但是现在的队伍乱糟糟的,有很多情侣都不在相邻位置。维持秩序的人同意让情侣们跟相邻的人交换位置,直到所有情侣都在2k-1和2k位置上为止。
但是维持秩序的人很没有耐心,所以需要最少的交换次数,你能帮情侣们算出这个次数吗?
输入描述:
第一行一个整数n,表示一共有n对情侣,编号从1到n。同一对情侣编号相同。1<=n<=100
第二行2n个整数ai,表示编号为ai的情侣在第i个位置。1<=ai<=n
输出描述:
一个整数,代表最少交换次数。
示例1
输入
3
3 3 2 2 1 1
输出
0
示例2
输入
4
1 2 3 4 1 2 3 4
输出
6

 

参考:

思路:采用递归,从左至右

def func(nums):
    if len(nums)==2:
        return 0
    w= nums[1:].index(nums[0]) 
    num = nums[1:]
    num.pop(w)   # w为索引
    return w+func(num)

if __name__ == '__main__':
    n = int(input())  #对数
    m = 2*n
    res = list(map(int, input().split()))
    if n == 1:
        print(0)
    d = func(res)
    print(d)

 

posted @ 2020-07-28 16:56  Andy_George  阅读(124)  评论(0编辑  收藏  举报