Python算法指南:程序员经典算法分析与实现
上QQ阅读APP看书,第一时间看更新

例19 创建最大数

1. 问题描述

给定两个长度分别是mn的数组,数组的每个元素都是数字0~9,从这两个数组当中选出k个数字来创建一个最大数,其中k满足k<=m+n,选出来的数字在创建最大数里的位置必须与在原数组内的相对位置一致。返回k个元素的整数数组,尽可能优化算法的时间复杂度和空间复杂度。

2. 问题示例

给出nums1=[3,4,6,5],nums2=[9,1,2,5,8,3],k=5,返回[9,8,6,5,3];给出nums1=[6,7],nums2=[6,0,4],k=5,返回[6,7,6,0,4];给出nums1=[3,9],nums2=[8,9],k=3,返回[9,8,9]。

3. 代码实现

4. 运行结果

输入:[1,-1,-2,1]

输入:[3,-2,2,1]

输入:3

输出:[3,2,1]