题目描述
给定一个正整数数组,检查数组中是否存在满足规则的数字组合
规则:A = B + 2C
输入描述
第一行输出数组的元素个数。
接下来一行输出所有数组元素,用空格隔开。
输出描述
如果存在满足要求的数,在同一行里依次输出规则里A/B/C的取值,用空格隔开。
如果不存在,输出0。
备注
数组长度在3-100之间。
数组成员为0-65535,数组成员可以重复,但每个成员只能在结果算式中使用一次。如:数组成员为[0, 0, 1, 5],0出现2次是允许的,但结果0 = 0 + 2 * 0是不允许的,因为算式中使用了3个0。
用例保证每组数字里最多只有一组符合要求的解。
用例

题目解析
本题数组长度不大,只有3~100,因此三重for暴力破解,也不会超时。
我们可以先将数组降序,则第一层for选择的数必然是最大的,可以作为A,第二层和第三层是较小数,可以作为B和C,或者C和B。
备注中还说明了
用例保证每组数字里最多只有一组符合要求的解。
因此,我们一旦找到符合要求的解,就可以直接return
Java算法源码
订阅专栏 解锁全文
1247

被折叠的 条评论
为什么被折叠?



