https://zerojudge.tw/ShowProblem?problemid=f608
輸入
from bisect import bisect
def append(x): #維護單調堆疊的程序
idx = bisect(mono, x)
if idx==len(mono): mono.append(x)
else: mono[idx] = x
mono = [] #單調堆疊
n = int(input())
seq = sorted(tuple(map(int, input().split())) for _ in range(n))
for _,i in seq: append(i)
print(len(mono))
#二分艘模組
from bisect import bisect
#二分搜尋
search = lambda i: bisect(mono, i)
#加入元素
append = lambda idx,i: mono.append(i) if idx==len(mono) else mono.__setitem__(idx, i)
#輸入
n, mono = int(input()), []; seq = sorted(tuple(map(int, input().split())) for _ in range(n))
#維護單調堆疊
tuple(append(search(i), i) for _,i in seq)
#輸出
print(len(mono))
最後再將這些程序用分號連接即可
from bisect import bisect; search, append = lambda i: bisect(mono, i), lambda idx,i: mono.append(i) if idx==len(mono) else mono.__setitem__(idx, i); n, mono = int(input()), []; seq = sorted(tuple(map(int, input().split())) for _ in range(n)); tuple(append(search(i), i) for _,i in seq); print(len(mono))
原先程式碼:
一行解:
一行解的記憶體佔用稍多,效率上則跟原先程式碼無明顯區別
Zerojudge
APCS
202101
一行解