I want to suggest you consider a new class of problems. In addition to easy, medium, and hard, I would propose a category "core" - core problems that are too common to be used as interview questions, but that anyone thinking of taking an interview should know cold. Examples would include:

- Binary search
- Merge sort
- Singly linked list node removal
- Quick sort
- Recursive DFS
- Non-recurvise DFS / BFS
- Heap push (or pop) into a heapified array
- Bottom-up Fibonocci calculation
- Counting sort
- Basic exhaustive search for TSP and 0/1 Knapsack

When I'm working on helping someone prepare, it would be really useful to say: "You need to be able to solve each of the core problems without any major effort." Leetcode would provide the framework that would let them type in their code and have it immediately unit tested.

I've just been working with some students who are really good, and did really well in a mock interview -- but flailed when implementing a binary-search variation. They understand the binary search, they immediately knew the runtime and the algorithmic principles, but had problems with the actual small details of the coding.