zoukankan      html  css  js  c++  java
  • 801. Minimum Swaps To Make Sequences Increasing

    DP

    class Solution {
    public:
        int minSwap(vector<int>& A, vector<int>& B) {
            int n = A.size();
            vector<int> dpSwap(n, n), dpNotSwap(n, n);
            dpSwap[0] = 1;
            dpNotSwap[0] = 0;
            for (int i = 1; i < n; i++) {
                if (A[i] > A[i-1] && B[i] > B[i-1]) {
                    dpNotSwap[i] = min(dpNotSwap[i], dpNotSwap[i-1]);
                    dpSwap[i] = min(dpSwap[i], dpSwap[i-1] + 1);
                }
                if (A[i] > B[i-1] && B[i] > A[i-1]) {
                    dpNotSwap[i] = min(dpNotSwap[i], dpSwap[i-1]);
                    dpSwap[i] = min(dpSwap[i], dpNotSwap[i-1] + 1);
                }
            }
            return min(dpNotSwap[n-1], dpSwap[n-1]);
        }
    };
  • 相关阅读:
    20200816
    20200815
    20200813
    20200811
    20200810
    20200806
    20200804
    20200803
    20200802
    20200801
  • 原文地址:https://www.cnblogs.com/JTechRoad/p/8979657.html
Copyright © 2011-2022 走看看