Skip to content

Commit 01d38f2

Browse files
committedApr 29, 2021
clarifications
1 parent 05d1641 commit 01d38f2

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed
 

‎README.md

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
# leetcode-problem-picker
22

3-
## Original motivation:
4-
A quick answer to the question "Which leetcode problem should I do next?" Because randomly choosing from 1750 questions wasn’t cutting it for me.
3+
## Purpose:
4+
This project was a response to the reoccurring question "Which leetcode problem should I do next?"
55

6-
## Modes
7-
The answer to that question depends on different needs and goals:
8-
1. Topic Focus: Narrow down to just a few subjects e.g. "only problems related to graphs, tries, and DP".
6+
Over time I found that the answer varies, depending on progress, needs, and goals:
7+
1. Topic Focus: Narrow down to one or a few subjects e.g. "only problems related to graphs, tries, and DP".
98
2. Filtered Lists: Which problems were frequently asked by companies I’m interested in? Also lists like Blind 75
109
3. Level Up (WIP): Deduces user's "skill range" for each topic in order to challenge (but not discourage).
1110
4. Weighted random (TODO): Weighted towards high like count, high like-dislike ratio, etc.
@@ -25,10 +24,10 @@ I wish to share and help others, but what I currently have and use is a product
2524

2625
```
2726
--topic -t selects from a pool of problems associated with a subject (according to leetcode)
28-
options are: array/arr, string/str, hash/hash table, linked list/ll, math, two-pointers/2ptr, binary search/binsearch, divide and conquer, dp/dynamic programming, backtrack(ing), stack/stk, heap, greedy, sort, bit (manipulation), tree, dfs, bfs, union-find, graph, design, top sort, trie, recursion, queue/q, sliding window
27+
see constants.py for list of options
2928
--list -l chooses problems from one or more text files (comma-delimited)
3029
--count -k number of problems to get
31-
--interactive -i interactive mode. Another way to input data (and it auto-populates the date). See section below for more information.
30+
--interactive -i interactive mode. Preferred way to input data. See section below for more info.
3231
note: no topic or list will result in a problem randomly being selected
3332
```
3433

@@ -60,23 +59,28 @@ LC number integer. The only required field
6059
was solved string. valid inputs: y/n (or yes/no). case insensitive
6160
time integer. number of minutes spent on the problem
6261
date DateTime. date completed
63-
num_errs float. errors made while solving the problem. Float because I differentiate minor from major errors.
62+
num_errs float. # mistakes made. Float to differentiate minor from major errors.
6463
```
6564
3. interactive mode: Solve a problem after it is assigned, then record results before getting the next problem. Appends results to completed.csv.
6665

67-
## Information regarding lists:
68-
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).
69-
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.
66+
## Keeping these lists up-to-date
67+
constants.py contains list of problem numbers associated for every subject
68+
Also included are company files. Possibly outdated, came from another repo.
7069

71-
## How to maintain up-to-date lists
72-
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)
73-
Then, from Developer Tools, run
70+
If you have leetcode premium and want to keep this info up-to-date:
71+
1. Visit desired problem set e.g. ["Facebook"](https://leetcode.com/company/facebook/)
72+
2. Display All rows in one page
73+
3. open up browser's Developer Tools (F12), and from console, run
7474

7575
```console.log(Array.from(document.querySelectorAll('.reactable-data tr td[label="#"]')).map(x => x.textContent).toString())```
7676

77-
And copy the list into text file
77+
4. Copy the resulting list into text file
78+
5. Send PR? :)
7879

7980
## TODO
8081

81-
1. Refactor what I have. Stay tuned.
82-
2. Level Up: User maintains a list of attempted problems. Program combines this with each problem’s "acceptance rate" to approximate a "skill range" for each topic (e.g. Hard 24-28% for Trees, Medium 31-45% for graphs).
82+
1. Clean up and prettify what I have. Stay tuned.
83+
2. Support multiple ways to handle completed problems
84+
3. Improve interactive mode
85+
4. Level Up: User maintains a list of attempted problems. Program combines this with each problem’s "acceptance rate" to approximate a "skill range" for each topic (e.g. Hard 24-28% for Trees, Medium 31-45% for graphs).
86+
5. Weighted random

0 commit comments

Comments
 (0)