jwalsh / jwalsh/hy-algorithms

Implement advanced dynamic programming patterns

Open
#26 0 comments 0 reactions 0 assignees View on GitHub
difficulty:hard dynamic-programming
Dominant language
Hy
Stars
2
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Create implementations for advanced dynamic programming patterns:

## Fundamental patterns:
- 0/1 Knapsack
- Unbounded Knapsack
- Longest Common Subsequence
- Longest Increasing Subsequence
- Edit Distance
- Matrix Chain Multiplication

## Advanced patterns:
- State machine DP
- Interval DP
- Tree DP
- Digit DP
- Probability DP
- Bitmasking DP
- DP on broken profile

## Optimization techniques:
- Space optimization
- Recursive to iterative conversion
- Subproblem pruning
- Divide and conquer optimization
- Knuth's optimization

## Requirements:
- Provide detailed state transition formulations
- Include derivation of recurrence relations
- Create comprehensive test cases
- Document practical applications

This collection will demonstrate advanced dynamic programming techniques that go beyond the basics and show how to formulate complex problems as DP solutions.

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named. Start by surveying the repository's existing algorithm and data-structure implementations to find its organization and conventions, then scope the requested patterns into smaller changes. Done would require implementations, recurrence and state-transition explanations, comprehensive tests, and practical-application documentation for the agreed scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.