You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/locales/en.js
+114-7
Original file line number
Diff line number
Diff line change
@@ -60,28 +60,81 @@ const en = {
60
60
notYet: "Not yet",
61
61
},
62
62
problem: {
63
+
10: "10. Regular Expression Matching",
64
+
44: "44. Wildcard Matching",
65
+
62: "62. Unique Paths",
66
+
63: "63. Unique Paths II",
67
+
64: "64. Minimum Path Sum",
63
68
69: "69. Sqrt(x)",
69
+
70: "70. Climbing Stairs",
70
+
72: "72. Edit Distance",
71
+
174: "174. Dungeon Game",
72
+
198: "198. House Robber",
73
+
233: "233. Number of Digit One",
64
74
278: "278. First Bad Version",
65
-
"278_desc": "The idea of the leftmost and rightmost is the same. Everyone can practice two questions. The actual situation can use different binary search according to the meaning of the question.",
75
+
"278_desc":
76
+
"The idea of the leftmost and rightmost is the same. Everyone can practice two questions. The actual situation can use different binary search according to the meaning of the question.",
77
+
292: "292. Nim Game",
66
78
327: "327. Count of Range Sum",
79
+
322: "322. Coin Change",
80
+
337: "337. House Robber III",
81
+
357: "357. Count Numbers with Unique Digits",
82
+
416: "416. Partition Equal Subset Sum",
83
+
464: "464. Can I Win",
67
84
493: "493. Reverse Pairs",
85
+
518: "518. Coin Change 2",
86
+
576: "576. Out of Boundary Paths(changed from selecting two directions to selecting four directions)",
87
+
698: "698. Partition to K Equal Sum Subsets",
68
88
743: "743. Network Delay Time",
69
89
778: "778. Swim in Rising Water",
70
-
"778_desc": "DFS + binary search, there are many similar questions, such as the 1439th question. This kind of question routine is very similar, and the difficulty is not big.",
90
+
"778_desc":
91
+
"DFS + binary search, there are many similar questions, such as the 1439th question. This kind of question routine is very similar, and the difficulty is not big.",
92
+
808: "808. Soup Servings",
93
+
837: "837. New 21 Game",
94
+
877: "877. Stone Game",
95
+
902: "902. Numbers At Most N Given Digit Set",
96
+
935: "935. Knight Dialer(Changed from selecting two directions to selecting eight directions)",
97
+
1015: "1015. Smallest Integer Divisible by K",
98
+
1140: "1140. Stone Game II",
71
99
1109: "1109. Corporate Flight Bookings",
72
100
1314: "1314. Matrix Block Sum",
101
+
1406: "1406. Stone Game III",
73
102
1462: "1462. Course Schedule IV",
74
103
1480: "1480. Running Sum of 1d Array",
104
+
1510: "1510. Stone Game IV",
105
+
1563: "1563. Stone Game V",
75
106
1584: "1584. Min Cost to Connect All Points",
107
+
1681: "1681. Minimum Incompatibility",
108
+
1686: "1686. Stone Game VI",
109
+
"1686_desc":
110
+
"Except for this one, the other \"Stone Game\" ideas are basically the same",
111
+
1690: "1690. Stone Game VII",
76
112
2536: "2536. Increment Submatrices by One",
113
+
114
+
// https://binarysearch.com/problems
77
115
minimumLightRadius: "Minimum Light Radius",
78
-
minimumLightRadius_desc: "Classic ability detection binary search, leetcode also has a similar topic",
116
+
minimumLightRadius_desc:
117
+
"Classic ability detection binary search, leetcode also has a similar topic",
79
118
kthPairDistance: "Kth Smallest Distance Pair",
80
-
kthPairDistance_desc: "Typical counting binary search, which is essentially an ability test, but the number of questions is large, so it is separated.",
119
+
kthPairDistance_desc:
120
+
"Typical counting binary search, which is essentially an ability test, but the number of questions is large, so it is separated.",
121
+
increasingDigits: "Increasing Digits",
122
+
palindromicInsertions: "Palindromic Insertions",
123
+
palindromicInsertions_desc:
124
+
"For interval dynamic programming, it is necessary to proceed simultaneously from both ends of the sequence, rather than from one end of the sequence to the other.",
125
+
126
+
// 剑指 Offer 系列
81
127
JZ51: "Sword Offer 51. Reverse pairs in an array",
82
128
129
+
// 面试题系列
130
+
interview17_13: "Interview 17.13. Re-Space LCCI",
131
+
interview17_13__desc:
132
+
"CHow to practice the details? 1? - 1? How to initialize? You can learn through this question ~",
If you ask me to summarize binary search in one sentence, I would say that binary search is an algorithm that makes the unknown world inorganic. That is, no matter what, we can discard half of the solutions, that is, we can cut the solution space in half.
159
211
The difficulty is two points: **what conditions** and **which part to discard**. This is the core problem that binary search needs to solve.
160
212
@@ -186,10 +238,65 @@ const en = {
186
238
binarySearch_item5_keys: `The essence is also ability detection, so it is basically the same as the ability detection framework. Everyone compares and understands.
187
239
`,
188
240
241
+
dp: "Dynamic Programming",
242
+
dp_desc: `The basic framework for different problems of the same type is generally consistent, but with slight variations in details. The template code is explained using a specific type as an example, and individuals should make adjustments based on the actual situation.
243
+
244
+
The three key points for dynamic programming are: state, enumeration, and transition equations (choices). For each type of problem, I try to provide hints based on these three points.
245
+
246
+
Of course, this learning path is intended for those with some foundation. If you don't have a foundation yet, you can refer to related articles. I will also write a comprehensive routine article in the future.`,
247
+
dp_item1: "Single string type",
248
+
dp_item1_keys1: `
249
+
State: 1. dp[i] represents the xxxx ending with s[i]
250
+
2. dp[i] represents the xxxx up to s[i]`,
251
+
dp_item1_keys2:
252
+
"Enumeration: It usually involves two nested loops, where one loop fixes the left endpoint and the other loop fixes the right endpoint for enumeration.",
253
+
dp_item1_keys3:
254
+
"Transition equation: Based on the problem, choose whether to combine with s[j], then take the maximum, minimum, or count as required.",
255
+
256
+
dp_item2: "Double string type",
257
+
dp_item2_keys1: `
258
+
State: 1. dp[i][j] represents the xxxx ending with s1[i], s2[j]
259
+
2. dp[i][j] represents the xxxx up to s1[i], s2[j]`,
260
+
dp_item2_keys2:
261
+
"Enumeration: Typically, it involves two nested loops, where one loop fixes the right endpoint of s1, and the other loop fixes the right endpoint of s2 for enumeration.",
262
+
dp_item2_keys3:
263
+
"State transition: Based on the problem and the relationship between s[i] and s[j], take the maximum, minimum, or count as required.",
264
+
265
+
dp_item3: "Sequence type",
266
+
dp_item3_keys1: `
267
+
State: 1. In one-dimensional arrays, dp[i] usually represents the xxxx ending with nums[i]
268
+
2. In two-dimensional arrays, dp[i][j] usually represents the xxxx ending with grid[i][j]`,
269
+
dp_item3_keys2:
270
+
"Enumeration: One-dimensional involves a single loop to enumerate all nums, while two-dimensional involves two loops to enumerate all grid.",
271
+
dp_item3_keys3: `
272
+
State transition: 1. In one dimension, it usually involves the relationship between the current cell and the preceding two cells, possibly involving maximum, minimum, or counting.
273
+
dp[i] = dp[i - 1] + dp[i - 2]" This is also called a recurrence relation because it does not involve decision-making.
274
+
2. In two dimensions, it usually involves the relationship between the current cell and its upper and left adjacent cells, possibly involving maximum, minimum, or counting.
275
+
dp[i][j] = dp[i - 1][j] + dp[i][j-1]" This is also called a recurrence relation because it does not involve decision-making.
276
+
3. From the transition equation, it's not difficult to see that this type of problem can usually be optimized using rolling arrays.
277
+
`,
278
+
279
+
dp_item4: "Backpack type(List only the problems)",
280
+
dp_item5: "Number type(List only the problems)",
281
+
dp_item5_keys1:
282
+
"The common definition of dynamic programming is represented as dp[i][j], where i stands for the length of the number, and j represents the last digit. For example, dp[3][2] denotes a number with a total of three digits, with 2 as the last digit.",
283
+
dp_item6: "Probability type(List only the problems)",
284
+
dp_item7: "Game type(List only the problems)",
285
+
286
+
dp_item8: "Interval DP",
287
+
dp_item8_text_comment:
288
+
"Using memoization might lead to better code writing. For example, the above DP code can be transformed into memoized recursion as:",
289
+
dp_item8_keys1: `
290
+
Traversing in reverse from the right boundary and in forward from the left boundary
291
+
`,
292
+
dp_item8_keys2:
293
+
"Typically, the return value is dp[0][n], rather than other common dp[-1][-1].",
294
+
dp_item9: "State compression type(List only the problems)",
0 commit comments