有人可以帮我解决所附图片中的以下问题吗?首选Java或PYTHON编码语言
答案 0 :(得分:0)
绝对不是最好的,而是一种建议的算法:
只看[4,3,1],[[4,3],1] = 24和[4,[3,1]] = 15的示例,就开始这样思考吧
因此,应将1直接分组,并以与其相邻的较小数字进行分组。
不仅应将1个数字,而且应将最小的数字与较小的一个分组,例如:
5, 3, 7, 9, 2, 7
a, b, c, d, e, f
在这里,您应该首先将2 e与7 f而不是2 e与9 d进行分组,然后将3 b与5 a而不是3 b与7 c进行分组。
所以你得到了。
[5, 3], 7, 9, [2, 7]
现在不要将7、9分组,但是由于7是最小的,因此将其与[5,3]分组(仅记住5个计数),您将得到:
[[5, 3], 7], 9, [2, 7]
现在9可以分组到任何一侧(我想,我很困惑),因为双方都有7,所以:
[[5, 3], 7], [9, [2, 7]] -- for example
最后:
[[[5, 3], 7], [9, [2, 7]]]
所以最终结果,也许我不能全部尝试并验证结果,但可以希望
好吧,也许我是完全错误的(几乎是对的),但这可能会建立起一种启动方法。
我希望它能对您有所帮助:)