|
|
@ -12,6 +12,8 @@ public class Code02_CreateMaximumNumber {
|
|
|
|
int[] res = new int[k];
|
|
|
|
int[] res = new int[k];
|
|
|
|
int[][] dp1 = getdp(nums1); // 生成dp1这个表,以后从nums1中,只要固定拿N个数,
|
|
|
|
int[][] dp1 = getdp(nums1); // 生成dp1这个表,以后从nums1中,只要固定拿N个数,
|
|
|
|
int[][] dp2 = getdp(nums2);
|
|
|
|
int[][] dp2 = getdp(nums2);
|
|
|
|
|
|
|
|
// get1 从arr1里拿的数量
|
|
|
|
|
|
|
|
// K - get1 从arr2里拿的数量
|
|
|
|
for (int get1 = Math.max(0, k - len2); get1 <= Math.min(k, len1); get1++) {
|
|
|
|
for (int get1 = Math.max(0, k - len2); get1 <= Math.min(k, len1); get1++) {
|
|
|
|
// arr1 挑 get1个,怎么得到一个最优结果
|
|
|
|
// arr1 挑 get1个,怎么得到一个最优结果
|
|
|
|
int[] pick1 = maxPick(nums1, dp1, get1);
|
|
|
|
int[] pick1 = maxPick(nums1, dp1, get1);
|
|
|
@ -223,7 +225,6 @@ public class Code02_CreateMaximumNumber {
|
|
|
|
int pick = arr.length + 1; // 1 ~ N
|
|
|
|
int pick = arr.length + 1; // 1 ~ N
|
|
|
|
int[][] dp = new int[size][pick];
|
|
|
|
int[][] dp = new int[size][pick];
|
|
|
|
// get 不从0开始,因为拿0个无意义
|
|
|
|
// get 不从0开始,因为拿0个无意义
|
|
|
|
// get 1
|
|
|
|
|
|
|
|
for (int get = 1; get < pick; get++) { // 1 ~ N
|
|
|
|
for (int get = 1; get < pick; get++) { // 1 ~ N
|
|
|
|
int maxIndex = size - get;
|
|
|
|
int maxIndex = size - get;
|
|
|
|
// i~N-1
|
|
|
|
// i~N-1
|
|
|
|