作者dont (dont)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Thu Oct 17 19:57:54 2024
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
推 sustainer123: 大師 10/17 20:00
噓 Sougou: 卷王 10/17 20:01
→ dont: 我兩天沒發文了捏 10/17 20:05
推 JerryChungYC: 大師 你不發文我沒code能提交 :( 10/17 22:13