321. 拼接最大數
給定長度分別為 m 和 n 的兩個陣列,其元素由 0-9 構成,表示兩個自然數各位上的數字。現在從這兩個陣列中選出 k (k <= m + n) 個數字拼接成乙個新的數,要求從同乙個陣列中取出的數字保持其在原陣列中的相對順序。求滿足該條件的最大數。結果返回乙個表示該最大數的長度為 k 的陣列。示例 1:
輸入:nums1 = [3, 4, 6, 5]
nums2 = [9, 1, 2, 5, 8, 3]
k = 5
輸出:[9, 8, 6, 5, 3]
示例 2:
輸入:nums1 = [6, 7]
nums2 = [6, 0, 4]
k = 5
輸出:[6, 7, 6, 0, 4]
示例 3:
輸入:基本思路:分治思想和單調棧,該問題需要分為兩步,首先是分別從兩個陣列分別抽取k1,k2個數字,要保證抽取的數字最大;緊接著,根據大小合併序列nums1 = [3, 9]
nums2 = [8, 9]
k = 3
輸出:[9, 8, 9]
vectorgetkmaxsequent(vector&nums, int k)
ans[++top] = nums[i];
}ans.resize(k);
return ans;
}vectormerge(vector&t1, vector&t2)
}return len1-i>len2-j;
}vectormaxnumber(vector& nums1, vector& nums2, int k)
return res;
}
321 拼接最大數
給定長度分別為m和n的兩個陣列,其元素由0 9構成,表示兩個自然數各位上的數字。現在從這兩個陣列中選出k k m n 個數字拼接成乙個新的數,要求從同乙個陣列中取出的數字保持其在原陣列中的相對順序。求滿足該條件的最大數。結果返回乙個表示該最大數的長度為k的陣列。說明 請盡可能地優化你演算法的時間和空...
321 拼接最大數
給定長度分別為 m 和 n 的兩個陣列,其元素由 0 9 構成,表示兩個自然數各位上的數字。現在從這兩個陣列中選出 k k m n 個數字拼接成乙個新的數,要求從同乙個陣列中取出的數字保持其在原陣列中的相對順序。求滿足該條件的最大數。結果返回乙個表示該最大數的長度為 k 的陣列。說明 請盡可能地優化...
LeetCode321 拼接最大數
給定長度分別為 m 和 n 的兩個陣列,其元素由 0 9 構成,表示兩個自然數各位上的數字。現在從這兩個陣列中選出 k k m n 個數字拼接成乙個新的數,要求從同乙個陣列中取出的數字保持其在原陣列中的相對順序。求滿足該條件的最大數。結果返回乙個表示該最大數的長度為 k 的陣列。說明 請盡可能地優化...