TheAlgorithms / C-Sharp

All algorithms implemented in C#.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contribution Request: Organizing And Adding Dynamic Programming Problems

craftycoder07 opened this issue · comments

I've noticed that there are some dynamic programming problems scattered throughout this repository. I believe it would greatly benefit the community if we could gather all these problems under a dedicated 'Dynamic Programming' folder for easier accessibility, especially given how frequently dynamic programming questions come up in interviews.

Here are a couple of reasons why this would be a valuable addition:

Interview Preparation: Dynamic programming is a key topic in technical interviews, and having these problems grouped together would be a valuable resource for users preparing for interviews.
Improved Visibility: Currently, dynamic programming problems are a bit hard to spot within the repository. Grouping all of them under one folder will make them much more visible.

I can start organizing them under Problems -> Dynamic Programming folder.

Initial suggestions for Dynamic Programming problems as follows:
NEW PROBLEMS

  1. Find factorial of a given number (Also available in sequences)
  2. Find nth number in a Fibonacci series (Also available in sequences)

REORGANIZING PROBLEMS TO ABOVE MENTIONED FOLDER

  1. Problems -> Dynamic Coin Change
  2. Strings -> Levenshtein Distance

Please let me know if you're open to this suggestion and if you have any specific preferences.

Thanks for reporting this. While I see that there is a problem with finding dynamic programming problems, reorganizing them is not simple. Factorials are in sequences because there are such sequences and we cannot just remove them from there. Other algorithms are organized according to the problem they solve and not the method they use to do that. Could you check how the mentioned algorithms are classified in other TheAlgorithms repos? We should do the same way everywhere

  1. For JAVA repo => All of the mentioned algorithms are classified under DYNAMIC PROGRAMMING section.
    https://github.com/TheAlgorithms/Java/tree/master/src/main/java/com/thealgorithms/dynamicprogramming

  2. For PYTHON => Factorial, Fibonacci and Coin Change are classified under DYNAMIC PROGRAMMING section.
    https://github.com/TheAlgorithms/Python/tree/master/dynamic_programming

  3. For JAVASCRIPT => Fibonacci Coin Change and Levenshtein Distance are classified under DYNAMIC PROGRAMMING section.
    https://github.com/TheAlgorithms/JavaScript/tree/master/Dynamic-Programming

Is this something you were looking for @siriak ?

Well, I guess we could move them to dynamic programming folder then. I'm not sure what to do with sequences, though. It's a feature of this repo, and it's not present elsewhere. Let's leave sequences in sequences and move the other mentioned algorithms to dynamic programming as you have suggested.

Ok. I will start working on it.