Competitive Programming簡単

Longest Bitonic Subsequence

Detailed guide and Python implementation for the 'Longest Bitonic Subsequence' problem.

問題提起

簡単

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.

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

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?
Consider using Dynamic Programming-specific data structures like sets or heaps.
Edge Cases to Watch
  • Empty input structures
  • Single element inputs
  • Large numerical bounds

解決する準備はできましたか?

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

エディタで開く
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

推奨される Python リソース

関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。