有1,1.5,2,2.5,3共5个元素
满足下列需求:
+-----++---++--
将上述元素以上述符号排列,使其总和为-7.5
其中第一个位置不能是2.5或3
第二个位置不能是2.5或3
求算法简化该时间复杂度!!! 算法

解决方案 »

  1.   

    有点想法:
    1. 先把+和-分类,放一起:+++++----------,这样5个加号,操作6个数相加(addSum),10个减号操作10个数相加的负数(可以看做10数相加的负数-delSum)
    2. 要求负数delSum-addSum=7.5
    3. 如果5个相加的数,再相减一次,那么就是要求剩下4个数之和达到7.5
    1+1.5+2+3=7.5,那么相减的4个数找到了,剩下随即生成5个数,分别放到增加序列和减序列,再注意下位置的条件。