Posts pythonTip 93 排序的精髓
Post
Cancel

pythonTip 93 排序的精髓

题目描述: 给你一个整数list L,现在只允许你有一种操作:交换列表中相邻的两个元素。 对于一个给定的L,请你输出至少需要多少次交换可以让L变成升序序列。 如:L=[2, 8, 0, 3],则输出3。 注解: 2 8 0 3 swap (8 0)=> 2 0 8 3 swap (2 0)=> 0 2 8 3 swap (8 3)=> 0 2 3 8

示例: 输入: L = [2, 8, 0, 3] 输出: 3

分析: 这个题目本质是 求 逆序对。 我这里使用最简单的一种方式,有兴趣的同学可以去 百度一下,有更多的题解。

代码:

1
2
3
4
5
6
ans = 0
for i, v in enumerate(L, 0):
    for j in range(0, i):
        if L[i] < L[j]:
            ans += 1
print(ans)
This post is licensed under CC BY 4.0 by the author.
Trending Tags
Contents

pythonTip 92 解析HTML

pythonTip 94 整数划分

Trending Tags