How to find the longest increasing subsequence (LIS) of a sequence of numbers in JavaScript

1 Answer

0 votes
function longestIncreasingSubsequence(nums) {
    const length = Array(nums.length).fill(1);
    let maxLength = 1;

    for (let i = 1; i < nums.length; i++) {
        for (let j = 0; j < i; j++) {
            if (nums[i] > nums[j]) {
                length[i] = Math.max(length[i], length[j] + 1);
            }
        }
        maxLength = Math.max(maxLength, length[i]);
    }

    return maxLength;
}

const nums = [4, 5, 1, 10, 3, 9, 18, 19];

console.log(`Length of LIS: ${longestIncreasingSubsequence(nums)}`);
  
 

/*
run:
     
Length of LIS: 5
     
*/

 



answered Jun 9, 2019 by avibootz
edited Nov 6, 2025 by avibootz
...