楼主:
Rushia (みけねこ的鼻屎)
2024-05-06 22:16:29※ 引述《ZooseWu (动物园 公告)》之铭言:
: 帮我解题
: 我有一组不重复的正整数一维阵列
: 每次行动可以将某个数字插入另一个数字的后面
: 行动以一个长度为二的阵列[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]]
: 题目的阵列长度是三位数
: 元素都是正整数(其实没差,不过限定正整数比较好设定排头)
1.先把阵列分成两堆,递增的记住他们的索引变一个单调堆叠,非递增的记住他们的值。
2.把非递增的值排序。
3.从最大数字x开始处理非递增的值,如果stack顶端大于x就把顶端元素pop,如果比较小
就表示要插到顶端的右边,如果单调堆叠已经空就插到0,因为是从大的元素开始插入
所以右边的索引变怎样就不用管了。
py code
作者:
pandix (面包屌)
2024-05-06 22:33:00我想想 你试试[1,7,9,2,3,4] 这组测资