Re: [閒聊] 每日leetcode
670. Maximum Swap
## 思路
先轉成str list
再從後面掃回來, 記錄當前最大值的idx
如果目前的值比最大值還小, 就更新swap的idx pair
## Code
```python
class Solution:
def maximumSwap(self, num: int) -> int:
arr = list(str(num))
n = len(arr)
max_idx = n-1
swap = None
for i in range(n-2, -1, -1):
if arr[i] > arr[max_idx]:
max_idx = i
elif arr[i] < arr[max_idx]:
swap = (i, max_idx)
if swap:
arr[swap[0]], arr[swap[1]] = arr[swap[1]], arr[swap[0]]
return int(''.join(arr))
```
--
https://i.imgur.com/kyBhy6o.jpeg

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 94.156.205.191 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1729166277.A.AA3.html
推
10/17 20:00,
1年前
, 1F
10/17 20:00, 1F
噓
10/17 20:01,
1年前
, 2F
10/17 20:01, 2F
→
10/17 20:05,
1年前
, 3F
10/17 20:05, 3F
推
10/17 22:13,
1年前
, 4F
10/17 22:13, 4F
討論串 (同標題文章)
完整討論串 (本文為第 998 之 1548 篇):