[动态规划] leetcode 960 Delete Columns to Make Sorted III

problem:https://leetcode.com/problems/delete-columns-to-make-sorted-iii/

        这是一道伪装成2维的1维最长子序列类型的dp题目,虽然打着hard的tag,实际上我觉得还没有另外一道make sorted的贪心类型的题目难。

class Solution {
public:
    int minDeletionSize(vector<string>& A) {
        int n = A.size();
        int m = A[0].size();
        int res = 0;
        vector<int> dp(m, 1);
        for (int i = 0; i < m; i++)
        {
        //    cout << i << " ";
            for (int j = 0; j < i; j++)
            {
                bool bLarger = true;
                for (int k = 0; k < n; k++)
                {
                    if (A[k][i] < A[k][j])
                    {
                        bLarger = false;
                        break;
                    }
                }
                if (bLarger)
                {
                    dp[i] = max(dp[i], dp[j] + 1);
                }
            }
            res = max(res, dp[i]);
        }
        //cout << res << endl;
        return m - res;
    }
};

 

posted @ 2019-08-07 23:13  fish1996  阅读(202)  评论(0)    收藏  举报