首页 > 其他 > 详细

LeetCode "Russian Doll Envelopes"

时间:2016-06-07 06:35:03      阅读:282      评论:0      收藏:0      [点我收藏+]

An intuitive DP - should be ‘medium‘.

class Solution {
public:
    int maxEnvelopes(vector<pair<int, int>>& envelopes) {
        int n = envelopes.size();
        if (!n) return 0;
        if (n == 1) return 1;
        
        //  Sort by Area
        sort(envelopes.begin(), envelopes.end(), [](const pair<int, int> &e1, const pair<int, int> &e2){
            return (e1.first *e1.second) < (e2.first *e2.second);
        });
        
        int ret = 1;
        vector<int> dp(n, 1);
        for(int i = 1; i < n; i ++)
        {
            pair<int, int> &ce = envelopes[i];
            for(int j = 0; j < i; j ++)
            {
                pair<int, int> &cp = envelopes[j];
                if((ce.first > cp.first && ce.second > cp.second) 
                    )
                {
                    dp[i] = max(dp[i], dp[j] + 1);
                }
                ret = max(ret, dp[i]);
            }
        }
        
        return ret;
    }
};

LeetCode "Russian Doll Envelopes"

原文:http://www.cnblogs.com/tonix/p/5565733.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!