最長増加部分列の効率的解法:貪欲法と二分探索

動的計画法から最適解への転換 最長増加部分列(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 投稿