🔥拼接最大数:你以为是贪心?其实是在“做选择的人生模拟”
一、引子:很多人写对了代码,却没搞懂本质
这道题(Create Maximum Number),不少人第一次写的时候都会觉得:
“这不就是贪心吗?每次选最大的数字就完了。”
然后一提交——
要么WA(错误答案),要么超时。
你会开始怀疑人生:
明明每一步都选最优,为什么最后结果不是最优?
👉 这道题最有意思的地方就在这:
局部最优 ≠ 全局最优。
甚至可以说,这题就是在教你一件事:
👉真正难的不是“选最大”,而是“在有限选择中,为未来留空间”。
二、问题本质:不是拼数字,是在“分配资源”
题目给你两个数组 nums1 和 nums2,让你选 k 个数字,拼成最大数。
限制是:
- 不能打乱原数组顺序
- 可以从两个数组中选
很多人一开始思路是:
👉 从两个数组里“选最大的数”
但问题来了:
- 如果你现在选了一个“局部最大”,可能会错过后面更大的组合
- 你不仅要选数,还要决定“从哪个数组选多少个”
所以问题本