670. Maximum Swap——array

题目分析:因为只交换一次,所以从高位开始,有比高位大且是高位之后最大的,就交换

class Solution:
    def maximumSwap(self, num):
        A = map(int, str(num))
        A = list(A)
        last = {x: i for i, x in enumerate(A)}
        print(last)
        for i, x in enumerate(A):
            print(i, x)
            for d in range(9, x, -1):
                if last.get(d, -1) > i:
                    A[i], A[last[d]] = A[last[d]], A[i]
                    return int("".join(map(str, A)))
        return num

相关文章:

  • 2021-08-23
  • 2022-12-23
  • 2021-05-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-07
  • 2022-12-23
猜你喜欢
  • 2021-08-22
  • 2021-08-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-10
  • 2022-12-23
相关资源
相似解决方案