LIS finds the longest strictly increasing subsequence, which models things like stacking boxes or tracking a rising trend. The O(n²) DP is easy to write and fine for a few thousand elements. For n up to 10⁵ you need the O(n log n) method with binary search over the smallest possible tails. Remember a subsequence may skip elements, unlike a subarray.