Dynamic Programming Solutions for Subsequence Problems: Longest Increasing Subsequence, Longest Continuous Increasing Subsequence, and Longest Common Subarray
Longest Increasing Subsequence (LIS)
Problem: Given an unsorted array, find the length of the longest increasing subsequence.
Dynamic Programming Approach:
Define DP array: Let lis[i] represent the length of the longest increasing subsequence ending at index i.
Transition: For each i, iterate through all j < i, and if nums[i] > nums[j], ...
Posted on Sun, 21 Jun 2026 16:25:59 +0000 by cryp7
Efficient Interval Merging for Range Exclusion Calculations
Problem A: Textbook Availability Decision
#include<iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
int regular, extra, discount;
cin >> regular >> extra >> discount;
double direct_cost = regular + extra * 0.5;
double discounted_cost = (regular ...
Posted on Wed, 20 May 2026 20:28:03 +0000 by wata
Backtracking with Element Tracking for Deduplication
Problem 491: Non-decreasing Subsequences
Given an integer array nums, return all the different non-decreasing subsequences that have atleast two elements. The answer can be in any order. When two integers are equal, this counts as a valid increasing sequecne.
Example 1:
Input: nums = [4,6,7,7]
Output: [[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7 ...
Posted on Fri, 08 May 2026 23:26:45 +0000 by mcccy005