Find the length of the longest increasing subsequence in an array of integers.

Given an array of integers, this problem aims to find the length of the longest increasing subsequence in the array. For example, given the input array [10, 9, 2, 5 , 3, 7, 101, 18], the output should be 4, as the longest increasing subsequence in the array is [2, 3, 7, 101]. This problem can be solved using dynamic programming, and the time complexity of the solution is O(n^2).

Problem

Given an array of integers, find the length of the longest increasing subsequence in the array.
Example input: [10, 9, 2, 5, 3, 7, 101, 18]
Example output: 4

Solution

This solution is in C++. Our A.I. can create solutions in multiple languages.
by kayakane
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    vector<int> input = {10, 9, 2, 5, 3, 7, 101, 18};
    vector<int> dp(input.size(), 1);
    int max_len = 1;
    for (int i = 1; i < input.size(); i++) {
        for (int j = 0; j < i; j++) {
            if (input[i] > input[j]) {
                dp[i] = max(dp[i], dp[j] + 1);
            }
        }
        max_len = max(max_len, dp[i]);
    }
    cout << max_len << endl;
    return 0;
}

/*

The solution is optimal because it uses dynamic programming to solve the problem.

The solution is O(n^2) because it uses two for loops.

*/

A.I. Evaluation of the Solution

The candidate's solution is correct and uses dynamic programming to solve the problem. However, the solution is not very efficient because it uses two for loops.

Evaluated at: 2022-12-05 00:15:45