Skip to content

Separate Data Structures and Problem-Solving Patterns in the Pattern Filter #554

Open

Description

@21sumeet

Problem

The current Patterns filter contains both data structures and problem-solving patterns/techniques in the same list.

For example, the filter currently includes items such as:

  • Array
  • Linked List
  • Binary Search
  • Backtracking
  • Two Pointers
  • Greedy
  • etc.

This makes the filter a little harder to use when someone wants to practice a specific type of data structure or a specific problem-solving pattern.

For example, a user looking specifically for Two Pointers problems has to search through the same list that also contains data structures such as Array and Linked List.

Proposed Improvement

Separate the existing options into two categories/filters:

Data Structures

  • Array
  • Linked List
  • Stack
  • Queue
  • Hash Table
  • Tree
  • Graph
  • Heap
  • etc.

Problem-Solving Patterns / Techniques

  • Two Pointers
  • Sliding Window
  • Binary Search
  • Backtracking
  • Greedy
  • Dynamic Programming
  • Prefix Sum
  • Fast & Slow Pointers
  • Monotonic Stack
  • etc.

This would also allow users to combine filters.

For example:

Data Structure: Array + Pattern: Two Pointers

or:

Data Structure: Linked List + Pattern: Fast & Slow Pointers

Screenshot

Image

Expected Benefit

Separating these concepts would make the filtering experience clearer
and make it easier for users to study questions based on either:

  1. The data structure involved
  2. The problem-solving pattern/technique used

Implementation

I would like to work on this issue and implement the proposed improvement, if this approach aligns with the project's direction.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions