竞赛讨论区 > 招行交换座位问题
头像
大菊已定
编辑于 2020-04-29 13:28
+ 关注

招行交换座位问题

感觉我这样写也是可以的啊!
遍历所给数组,步长设置为2。
如果arr[i-1] 为偶数,则交换
index1 = arr.index(arr[i - 1] + 1)
arr[i], arr[index1] = arr[index1], arr[i]
为奇数,则交换:
index1 = arr.index(arr[i - 1] - 1)
arr[i], arr[index1] = arr[index1], arr[i]

在本地是怎么测试怎么过,提交上去就是不能完全通过所有案例
求大佬帮我瞅瞅

import sys


class Solution:

    def fun1(self):
        # while True:
        n = int(input().strip())
        arr = sys.stdin.readline().strip()
        arr = list(map(int, arr.split()))
        Min = min(arr)
        Max = max(arr)
        if Min != 0&nbs***bsp;Max != 2 * n - 1:
            return 0
        if n < 2&nbs***bsp;len(arr) != 2 * n:
            return 0
        res = 0
        for i in range(1, 2 * n, 2):
            diff = arr[i] - arr[i - 1]
            if abs(diff) == 1:
                continue
            # if diff < 0:
            if arr[i - 1] & 1 == 1:
                index1 = arr.index(arr[i - 1] - 1)
                arr[i], arr[index1] = arr[index1], arr[i]
                res += 1
            else:
                index1 = arr.index(arr[i - 1] + 1)
                arr[i], arr[index1] = arr[index1], arr[i]
                res += 1
        print(res)


if __name__ == '__main__':
    res = Solution().fun1()
    # print(res)


全部评论

(1) 回帖
加载中...
话题 回帖