|
1 | 1 | # leetcode-problem-picker
|
2 | 2 |
|
3 |
| -# Original motivation: |
4 |
| -A quick answer to the question “Which leetcode problem should I do next?” (“random” from a list of >1750 questions just wasn’t cutting it for me) |
| 3 | +## Original motivation: |
| 4 | +A quick answer to the question “Which leetcode problem should I do next?” |
| 5 | +Randomly choosing from 1750 questions wasn’t cutting it for me. |
5 | 6 |
|
6 | 7 | ## Possible modes:
|
7 | 8 | While I was practicing, I found that I had different needs:
|
8 |
| -1. Topic focus: e.g. “only do graph or DP problems”. |
| 9 | +1. Topic focus: e.g. “only graph or DP problems”. |
9 | 10 | 2. (company) list: e.g. which problems were more frequently asked by companies that I’m interested in?
|
10 | 11 | 3. Level up: (incomplete/WIP)
|
11 | 12 | User maintains a list of completed/failed problems (and time spent solving) and program determines an approximate “skill range” for each topic (e.g. Hard 24-28% for Trees, Medium 34-45% for dynamic programming) by factoring in each problem’s “acceptance rate”. Then it gives a problem within that range, balancing being challenged with not being discouraged. Idea comes from RPGs.
|
@@ -36,31 +37,32 @@ Displays information about a specific problem: Name, difficulty, Acceptance rate
|
36 | 37 | This mode selects and displays a single problem and waits for input:
|
37 | 38 |
|
38 | 39 | ```
|
39 |
| -deets displays details about problem. problem name, difficulty, acceptance rate |
40 |
| -hint displays related topics |
41 |
| -y/n,number of errors (optional),time (optional) |
42 |
| -skip move onto next problem |
43 |
| -quit stop the program |
| 40 | +deets displays details about problem. problem name, difficulty, acceptance rate |
| 41 | +hint displays related topics |
| 42 | +y/n,num_errs,time data regarding attempt. See Completed Problems section for more details |
| 43 | +skip move on to the next problem |
| 44 | +quit stop the program |
44 | 45 | ```
|
45 | 46 |
|
46 | 47 | ## Completed Problems (optional/recommended):
|
47 | 48 | To maximize this program, you need to maintain a list of completed problems. This is to avoid being suggested problems you’ve done before, and in the case of “Level Up,” to select problems slightly out of comfort zone
|
48 | 49 | This can be done in three ways:
|
49 |
| -1. interactive mode: Solve a problem after you are assigned them, then record results. See section below for more details. Appends to completed.csv. |
50 |
| -2. completed.txt: Format is a comma-delimited list of problem numbers e.g. “78,5,13,1337". It is the most simple, but not compatible with “Level Up” mode |
51 |
| -3. completed.csv: One line per problem. |
| 50 | +1. completed.txt: Format is a comma-delimited list of problem numbers e.g. “78,5,13,1337". It is the most simple, but not compatible with “Level Up” mode |
| 51 | +2. completed.csv: One line per problem. |
| 52 | +3. interactive mode: Solve a problem after it is assigned, then record results before getting the next problem. Appends results to completed.csv. |
| 53 | + |
52 | 54 | Expected format: ```LC number, [was solved],[time],[date],[num_errors]```
|
53 | 55 | ```
|
54 |
| -LC number integer. The only required field |
55 |
| -was solved string. valid inputs: y/n (or yes/no). case insensitive |
56 |
| -time integer. number of minutes spent on the problem |
57 |
| -date DateTime. completed day |
58 |
| -num_errors float. errors made while solving the problem. Float because I differentiate minor from major errors. |
| 56 | +LC number integer. The only required field |
| 57 | +was solved string. valid inputs: y/n (or yes/no). case insensitive |
| 58 | +time integer. number of minutes spent on the problem |
| 59 | +date DateTime. date completed |
| 60 | +num_errs float. errors made while solving the problem. Float because I differentiate minor from major errors. |
59 | 61 | ```
|
60 | 62 |
|
61 |
| -## Information on lists: |
| 63 | +## Information regarding lists: |
62 | 64 | Included in this repo are txt files for each topic. Each one is a comma-separated list of problem #s associated with that subject (provided by leetcode).
|
63 |
| -Also included are company files. Possibly outdated. See section below if you have leetcode premium and want to keep this info up-to-date. |
| 65 | +Also included are company files. Snatched from a github repo, possibly outdated. See section below if you have leetcode premium and want to keep this info up-to-date. |
64 | 66 |
|
65 | 67 | ## How to maintain up-to-date lists
|
66 | 68 | After visiting leetcode in browser, open a page with a problem list (e.g. load up Linked List problems and load All problems in one page)
|
|
0 commit comments