Untitled

 avatar
unknown
c_cpp
2 years ago
867 B
5
Indexable
#include <iostream>
#include <vector>
using namespace std;

int dynamicProgrammingLongestIncreasingSubsequence(vector<int>& nums) {
    int n = nums.size();
    if (n == 0) {
        return 0;
    }

    vector<int> dp(n, 1); // Tabel DP untuk menyimpan panjang subsequence meningkat terpanjang

    for (int i = 1; i < n; i++) {
        for (int j = 0; j < i; j++) {
            if (nums[i] > nums[j]) {
                dp[i] = max(dp[i], dp[j] + 1);
            }
        }
    }

    int maxLength = 0;
    for (int i = 0; i < n; i++) {
        maxLength = max(maxLength, dp[i]);
    }

    return maxLength;
}

int main() {
    vector<int> nums = {3, 1, 8, 2, 5};
    int result = dynamicProgrammingLongestIncreasingSubsequence(nums);
    cout << "Panjang subsequence meningkat terpanjang: " << result << endl;

    return 0;
}
Editor is loading...