step20
Loading...
Searching...
No Matches
Functions
step20::longest_common_subsequence Namespace Reference

Functions

template<std::ranges::random_access_range R1, std::ranges::random_access_range R2, std::weakly_incrementable O, class Equal = std::equal_to<>>
copy (const R1 &r1, const R2 &r2, O result, const Equal &eq={})
 Find the longest subsequence present in two sequences.
 

Function Documentation

◆ copy()

template<std::ranges::random_access_range R1, std::ranges::random_access_range R2, std::weakly_incrementable O, class Equal = std::equal_to<>>
O step20::longest_common_subsequence::copy ( const R1 &  r1,
const R2 &  r2,
result,
const Equal &  eq = {} 
)

Find the longest subsequence present in two sequences.

Substring is contiguous, while subsequence need not be. Time complexity O(N*M), space complexity O(min(N,M)), where: N = std::ranges::distance(r1), M = std::ranges::distance(r2).