8000 Get hot problems · pluveto/leetcode-rust@7431924 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7431924

Browse files
committed
Get hot problems
1 parent b94604b commit 7431924

File tree

3 files changed

+1083
-0
lines changed

3 files changed

+1083
-0
lines changed

FetchList.js

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
// https://codetop.cc/api/questions/?page=${N}&search=&ordering=-frequency
2+
3+
let genUrl = (N) => {
4+
return `https://codetop.cc/api/questions/?page=${N}&search=&ordering=-frequency`
5+
}
6+
7+
let pageRange = {min: 1, max: 50}
8+
9+
let fetchPage = (N) => {
10+
let url = genUrl(N)
11+
console.log(`Fetching ${url}...`);
12+
return fetch(url).then(r => r.json())
13+
}
14+
15+
let fetchAllPages = (range) => {
16+
let queryPeriod = 1000
17+
let promises = []
18+
for (let i = range.min; i <= range.max; i++) {
19+
promises.push(fetchPage(i))
20+
}
21+
return Promise.all(promises)
22+
}
23+
24+
let fetchAllQuestions = () => {
25+
return fetchAllPages(pageRange).then(pages => {
26+
let questions = []
27+
for (let page of pages) {
28+
console.log("Page: ", page);
29+
questions = questions.concat(page.list)
30+
}
31+
return questions
32+
})
33+
}
34+
35+
/**
36+
* Response format:
37+
* {
38+
* count,
39+
* list {
40+
* id,
41+
* value,
42+
* leetcode? {
43+
* id,
44+
* title
45+
* }
46+
* }
47+
* }
48+
*/
49+
50+
// Generate a list of {leet_id, value, title}
51+
let genList = (questions) => {
52+
let list = []
53+
for (let q of questions) {
54+
let leetcode = q.leetcode
55+
if (leetcode) {
56+
let id = leetcode.id
57+
let title = leetcode.title
58+
let value = q.value
59+
list.push({id, value, title})
60+
}
61+
}
62+
return list
63+
}
64+
65+
// Sort the list by value
66+
let sortList = (list) => {
67+
return list.sort((a, b) => {
68+
return b.value - a.value
69+
})
70+
}
71+
72+
// Print to console
73+
let printList = (list) => {
74+
let out = ""
75+
for (let {id, value, title} of list) {
76+
out += `${id},${value},${title}\n`
77+
}
78+
console.log(out)
79+
}
80+
81+
// Main
82+
fetchAllQuestions().then(questions => {
83+
let list = genList(questions)
84+
let sortedList = sortList(list)
85+
printList(sortedList)
86+
})

0 commit comments

Comments
 (0)
0