最長増加部分列の効率的解法:貪欲法と二分探索
動的計画法から最適解への転換
最長増加部分列(LIS)問題では、無秩序な配列から厳密に増加する最長の部分列を見つける。例えば配列[10,9,2,5,3,7,101,18]では、LISは[2,3,7,101]で長さ4となる。
動的計画法の基本アプローチ
基本解法は動的計画法(DP)によるO(n²)の実装:
def lis_length_dp(nums):
dp = [1] * len(nums)
for i in range(1, len(nums)):
f ...
7月6日 22:08 投稿