Back to Practice Dashboard
Competitive ProgrammingEasy

Longest Bitonic Subsequence

Learn how to solve the 'Longest Bitonic Subsequence' problem. This detailed resource details brute force and optimized approaches.

Problem Statement

Easy

Write a function lbs(arr) that returns the length of the longest bitonic subsequence in an array arr. A subsequence is bitonic if it first increases and then decreases, or strictly increases, or strictly decreases.

Constraints
  • 1 <= len(arr) <= 1000
  • -10^4 <= arr[i] <= 10^4

Examples

Example 1
Input
lbs([1, 11, 2, 10, 4, 5, 2, 1])
Output
6
Explanation

The longest bitonic subsequence is [1, 2, 10, 5, 2, 1] or [1, 2, 4, 5, 2, 1] with length 6.

Example 2
Input
lbs([12, 11, 40, 5, 3, 1])
Output
5
Explanation

The longest bitonic subsequence is [12, 11, 5, 3, 1] or [11, 40, 5, 3, 1] with length 5.

Need a Hint?
Define subproblem states, establish the recurrence relation, and use memoization (top-down) or tabulation (bottom-up).
Edge Cases to Watch
  • Empty list or null input variables
  • Single item lists/arrays
  • Extremely large input bounds causing integer or stack overflow

Ready to Solve?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Open in Editor