gpt4 book ai didi

arrays - 重新排列整数数组(正数)的元素以形成最大结果数

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:49 26 4
gpt4 key购买 nike

这是一道面试题。我们有一个正整数数组,我们必须重新排列和连接数组元素,以便生成的数字是可以使用此数组形成的最大数字。

例如:

[884 88] -> 88884

[20 19 90] -> 902019

[909 90] -> 90990

我的解决方案:我认为首先按最高有效数字 (MSD) 降序排列元素。

即对于 909 、 12 、 88 我们将在排序后得到 909 、 88 、 12 ,对于那些具有相同 MSD 的排序第二个 MSD 并继续这样做。

因此对于数组 909、99,我们将拥有 99 和 909 并将它们组合起来。但是对于数组 909、90,我们将有 90、909,这是一个问题,因为我们在两个数字中都有 90,所以

90

909 ---> 这里有两种可能的组合,因为 90 很常见,所以在从 909 中删除公共(public)部分后剩下 9,所以我将检查将这个 9 附加到 90 是否会使它变大。在这种情况下,在 90 前面附加 9,我们得到 990,它大于 909,因此 909 后面将是 90。所以答案是 90990。

但是当我尝试编写代码时,我发现很难编写代码,因为涉及到太多的复杂性。有什么建议吗?

最佳答案

让数字集中的宽度 = min(#digits)

仅按第一个宽度数字对数字进行降序排序 - 通过首先对数字较少的数字进行排序来打破平局

拿第一个

重复

关于arrays - 重新排列整数数组(正数)的元素以形成最大结果数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14610716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com