经典指数          
原因
1936
浏览数
0
收藏数
 

现定义数组单调和为所有元素i的f(i)值之和。这里的f(i)函数定义为元素i左边(不包括其自身)小于等于它的数字之和。请设计一个高效算法,计算数组的单调和。 给定一个数组A同时给定数组的大小n,请返回数组的单调和。保证数组大小小于等于500,同时保证单调和不会超过int范围。 测试样例: [1,3,5,2,4,6],6 返回:27

     举报   纠错  
 
切换
1 个答案

classMonoSum {

public:

    intinsert(vector & A, intcom_v){

        intdv = 0, index = A.size();

        for(inti = 0; i < A.size(); i++){

            if(A[i] <= com_v){

                dv += A[i];

            }

            else{

                index = i;

                break;

            }

        }

        A.insert(A.begin()+index, com_v);

        returndv;

    }

 

intcalcMonoSum(vector A, intn) {

        vector B;

        intvalue = 0;

        for(inti = 0; i < n; i++){

            value += insert(B, A[i]);

        }

        returnvalue;

    }

};

 
切换
撰写答案