[闲聊] leetcode 大师请进

楼主: ZooseWu (N5)   2024-05-06 21:12:08
帮我解题
我有一组不重复的正整数一维阵列
每次行动可以将某个数字插入另一个数字的后面
行动以一个长度为二的阵列[a, b]表示 a 插入 b 后面
如果元素要放到开头就以插入 0 表示
求最小行动数的二维阵列
ex:
题目: [1, 3, 7, 9, 5, 2]
答: [[2, 1], [5, 3]]
题目: [9, 7, 5, 3, 1]
答: [[1, 0], [3, 1], [5, 3], [7, 5]]
或是 [[7, 0], [5, 0], [3, 0], [1, 0]]
题目的阵列长度是三位数
元素都是正整数(其实没差,不过限定正整数比较好设定排头)
作者: Rushia (みけねこ的鼻屎)   2024-05-06 21:21:00
看起来是monotonic stack
作者: oinishere (是oin捏)   2024-05-06 21:22:00
monotonic stack+1
作者: sustainer123 (caster)   2024-05-06 21:23:00
同上
作者: oinishere (是oin捏)   2024-05-06 21:26:00
nlogn 感觉可以欸 每进一个数字 往回找到位子插入 可以用二分搜找位子n感觉好像不行了 因为要知道插进去哪里
作者: DJYOSHITAKA (Evans)   2024-05-06 21:33:00
直接用upper_bound()或lower_bound() 对不起
作者: sustainer123 (caster)   2024-05-06 21:34:00
我粗看是想到n**2
楼主: ZooseWu (N5)   2024-05-06 21:35:00
我找一下monotonic stack 没听过这玩意儿
作者: pandix (面包屌)   2024-05-06 21:44:00
三位数可以直接counting sort了
楼主: ZooseWu (N5)   2024-05-06 22:44:00
元素大小未知,数量是三位数

Links booklink

Contact Us: admin [ a t ] ucptt.com