本帖最后由 a190169583 于 2012-04-18 10:38:45 编辑

解决方案 »

  1.   

    哦,就是他们的值,比如"1,4,5,7",如果删除X=4的话,weight[X-1] =1, weight[X+1]=5
      

  2.   

    每次去找最大的,然后直到剩2个就行了: public static void main(String[] args) {
    List<Integer> list = new ArrayList<Integer>();

    list.add(1);
    list.add(2);
    list.add(3);
    list.add(4);
    list.add(5);
    list.add(6);
    list.add(7);

    int a = 0;
    int max = Integer.MIN_VALUE;
    int index = -1;
    while(list.size() > 2){
    for(int i = 1; i < list.size() - 1; i++){
    if(list.get(i - 1) * list.get(i + 1) > max){
    max = list.get(i - 1) * list.get(i + 1);
    index = i;
    }
    }
    a += max;
    list.remove(index);
    index = -1;
    max = Integer.MIN_VALUE;
    }
    System.out.println(a);
    }
      

  3.   

    int a[] = {4,10,3,1,2};
    就比如这个吧,按一楼的意思是先把10干掉?在把1干掉,在干掉3吗?
    如果是这样,结果显然不对,应该先干掉1吧,在干掉3,在干掉10.