LeetCode Weekly Contest 153 4問目 - Make Array Strictly Increasing [1187]

Source

LeetCode Weekly Contest 153
問題文

問題概要

省略

解法

省略

cLayversion 20190914-1)のコード

C++に変換後のコードはこちら

#define main dummy_main
{}
#undef main

class Solution {
public:
  int makeArrayIncreasing(vector<int>& A, vector<int>& B) {
    int i, j, k;
    int N, M;
    int dp[2001], nx[2001];

    N = A.size();
    M = B.size();
    sort(B.begin(), B.end());

    rep(i,N+1) dp[i] = int_inf;
    dp[0] = -1;
    rep(i,N){
      rep(k,N+1) nx[k] = int_inf;
      rep(k,N+1) if(dp[k] < A[i]) nx[k] <?= A[i];
      rep(k,N) if(dp[k] < int_inf) {
        j = upper_bound(B.begin(), B.end(), dp[k]) - B.begin();
        if(j < M) nx[k+1] <?= B[j];
      }
      rep(k,N+1) dp[k] = nx[k];
    }

    rep(i,N+1) if(dp[i] < int_inf) return i;
    return -1;
  }
};

Current time: 2024年04月25日05時18分28秒
Last modified: 2019年09月14日17時22分24秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: