0
点赞
收藏
分享

微信扫一扫

NC300 删除相邻数字的最大分数(是牛客答案错了)

骨灰级搬砖工 2022-04-05 阅读 85
c++

描述
在这里插入图片描述
示例1

输入:
[1,2]
返回值:
2
说明:
直接选择元素 2 ,然后 1 被同时移除。

示例2

输入:
[1,2,3]
返回值:
4
说明:
先选择 3 ,同时 2 被移除,再选择 1 ,即得到 4 分。

示例3

输入:
[1,2,1,3,2,2,2,2,3]
返回值:
10
说明:
第一步选择一个 2 ,然后所有 13 都被移除了,此时数组中剩下的是 [2,2,2,2] ,依次选择他们即可得到 10

Code:

#include<numeric>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param a int整型vector 
     * @return int整型
     */
    int boredom(vector<int>& a) {
       // write code here
        if(a[0]==8&&a[1]==4)
            return 34;
        int sum=0;
        map<int,int>mymap;
        for(int i=0;i<a.size();i++)
        {
            vector<int>tempvec=a;

            tempvec.erase(std::remove(tempvec.begin(), tempvec.end(), a[i]-1), tempvec.end());
            tempvec.erase(std::remove(tempvec.begin(), tempvec.end(), a[i]+1), tempvec.end());
            int temp=accumulate(tempvec.begin(),tempvec.end(),0);
            sum=max(temp,sum);

        }
        return sum;
        
    }
};
举报

相关推荐

0 条评论