题解 | #合唱队#

合唱队

http://www.nowcoder.com/practice/6d9d69e3898f45169a441632b325c7b4

注意从右边到左边的时候要让j一直在i的左边,这样才会有{有j,无j}的两种状态,此题还有一种方法,二分插入法。

#include <string>
#include <map>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    unsigned N = 0;
    while (cin >> N) {
        vector<unsigned> v;
        int height;

        for (int i = 0; i < N; i++) {
            cin >> height;
            v.push_back(height);

        }
        vector<unsigned> dpleft(N, 0), dpright(N, 0);
        for (int i = 0; i < N; i++) {
            dpleft[i] = 1;
            for (int j = 0; j < i; j++) {
                if (v[i] > v[j])
                    dpleft[i] = max(dpleft[j] + 1, dpleft[i]);
            }
        }//for

        for (int i = N - 1; i >= 0; i--) {
            dpright[i] = 1;
            for (int j = N - 1; j > i; j--) {
                if (v[i] > v[j])
                    dpright[i] = max(dpright[j] + 1, dpright[i]);
            }
        }//for
        int maxnum = 0;
        for (int i = 0; i < N; i++)
            if (maxnum < (dpleft[i] + dpright[i] - 1))
                maxnum = dpleft[i] + dpright[i] - 1;
        cout << N - maxnum << endl;
    }//while



}
全部评论

相关推荐

昨天 10:23
已编辑
湖南师范大学 计调
太久没更新,前几天看到一条评论,说“牛客就是当年那群做题区毕业了开始找工作还收不住那股味”的群体。字里行间透着居高临下的评判,不是,他该不会以为自己很幽默?很犀利吧?作为在牛客混了不算短日子的用户,我感到的不只是被冒犯,更是一种深刻的悲哀——这种以“松弛感”为名,对另一种生存策略的轻蔑,颇有一种自己考不上大学早早出来混社会,嘲笑考上大学的人是书呆子,然后大言不惭地说:死读书有什么用,人脉和资源才是硬道理。我不知道说这个话的人,手头究竟握着多少真正管用的人脉与资源,也不知道他这么傲慢地说出“那股味”的时候,是站在哪一个巨人的肩膀上,才能如此“松弛从容”地俯视众生,还能品评出别人身上“没收住”的余...
淬月星辉:这种评论把正常的努力扭曲成卷😂,说白了就是自己不努力,看着身边努力的人一个个都事业有成了,自己的心里开始不平衡了,就发这种酸言酸语。牛客可以说是我用过那么多平台里社区氛围最好的论坛了,用了大半年了,基本上没见过有人吵架的,都是在互帮互助提建议,帮忙看简历的,帮忙选offer的,帮忙指点学习路线的,分享工作经验和趣事的,我觉得这才是互联网该有的样子。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务