Leetcode•Apr 06, 2026
Longest Increasing Subsequence
Hazrat Ali
Leetcode
Given an integer array nums, return the length of the longest strictly increasing .
Example 1:
Input: nums = [10,9,2,5,3,7,101,18] Output: 4 Explanation: The longest increasing subsequence is [2,3,7,101], therefore the length is 4.
Example 2:
Input: nums = [0,1,0,3,2,3] Output: 4
Example 3:
Input: nums = [7,7,7,7,7,7,7] Output: 1
Solution
function lengthOfLIS(nums) {
let tails = [];
for (let num of nums) {
let left = 0, right = tails.length;
while (left < right) {
let mid = Math.floor((left + right) / 2);
if (tails[mid] < num) {
left = mid + 1;
} else {
right = mid;
}
}
tails[left] = num;
}
return tails.length;
}