First public number: Bigsai reply “Bigsai” get PDF learning resources, reply “into the group” together punch force buckle become king
preface
Recently, many friends asked me how to get started with data structures and algorithms, or how to brush questions. Many of them also said they were confused. Today I’m going to give you a set of tips from start to finish based on my direct and indirect experience. Of course, this suggestion if ACM big man see do not spray ha, more suggest the development direction of the people to take this road.
If you are a freshman, learn the language foundation can take this road, if you are a sophomore, it just suits you, if you are a junior, then you had better speed up the selection of essence to complete, if you are working or other want to improve themselves, that is a good road.
Bronze silver (15 days)
Step by step, even if he is a king, he has climbed from bronze step by step. And we bronze do not have the pressure of the king, we do not know anything, everything can only grope, if can not find a good path indeed may be bronze for a long time (ha ha ha have you always bronze). Let’s see how to break through bronze and silver?
What language basics do you need to get started?
Input/output, multiple inputs, if, for loops, arrays, strings, etc. + simple logic.
Is that really enough? Really, the purpose of this stage is to be able to handle simple logic problems.
How many? Where should I brush it? Here are two recommended places for you.
The first place:C language network(Suitable for bronze)
C language network is especially suitable for small white, the front of the topic is relatively simple, especially suitable for entry. Suitable for small white in small white, enjoy the feeling of AC.
Second placeHangzhou telegraph page 11(More recommended for bronze and silver)
This is all about memory. More suitable for everyone to start. Of course, there are 100 questions on the 11th page of Hangzhou Electric. There is no need to brush so many questions. You can pick a simple and ordinary one.
How many questions will it take and how long will it take?
Should not be too long, basically see oneself master degree, recommend 1-2 weeks such. Of course, the cycle varies according to the time spent every day, so the number of questions should be about 40. If it is easier, you can reduce it appropriately. There are so many talented people who can easily get out of bronze or silver or gold.
Of course, at this stage, many old iron may feel uncomfortable, because the first time to use the computer thinking to think about the problem, may feel more difficult, but listen to me: ** stick to it, good, always can pass! ** A problem may take you a long time, you may be difficult to start, try to look at other people’s code, see how others think.
Gold platinum (15 days)
This stage is a big man in the eyes of bronze, in the eyes of diamond star or small white. This stage is not simple logic, but involves some algorithms and logic. It takes some serious thinking.
This stage needs to master: Java List, Map, Set, StringBuilder, Java API call sorting, class sorting (Comparator interface), linked lists, simple greed, recursion, entry level DP (at most violence), etc.
This part mainly focuses on practicing logic, so that I can deal with less complicated problems with normal logic, and improve my hands-on and code ability. It gives you the ability to figure out everything you see by force.
Of course, at this stage, WE also recommend two places to brush questions:
Cow guest pat b column
Pat b’s column is recommended here. Not because PAT B is hard, but pat B has a lot of strings that require thinking and logic. This process gives you a lot of coding and logic, because often we might actually have some character processing, and we need to be able to do that. Do not recommend to the PTA official brush cattle guest class B 30 question is almost the same. This part may be hard for many people.
I, my roommate and many other people may not be able to do a single question for half a day at the beginning, so don’t give up when encountering difficulties in the early stage, be sure to finish the 30 questions. The 15 is easy, the 20 is average, the 25 is usually not hard but it’s complicated, you know, it’s kind of hard and you don’t want to do it, but don’t be lazy.
Hangzhou Electric part of the topic(For Platinum players)
one I’m going to be able to handle strings (2 days, 6 questions)
2072, 2081, 2093, 2091, 1004, 2057
two Simple Math problems (4 days, 12 questions)
2031, 2033, 2070, 2071, 2075, 2089, 2090, 2092, 2096 — 2099
3. Play Hanover Tower (3 days,5 questions)
1995, 1996, 2064, 2077, 2175
Four. As Easy As Math (5 分, 8题)
1108, 2138, 1713, 1722, 2136, 2504, 1717, 1125
Reference from 671 big guy’s collation, at the beginning of the author is in accordance with this step to brush, some topics exercise thinking, more burn brain a little bit, but the overall difficulty is good.
Diamond Star Shine (30 days)
This part is the advanced stage of the algorithm, maybe you go through this stage to save energy and TALK to the ACM big man, next in front of the white man pretend big man.
This part needs to master the content is more, I give some often encountered list: greedy algorithm, backtrace algorithm, DFS, BFS, DP, divide and conquer algorithm, part of the number theory algorithm (fast power, Euclidean, extended Euclidean most), full arrangement, quick arrangement, merge sort, occasionally KMP or generating function. Data structure requires mastery of various linked list operations, binary tree operations, binary tree traversal (involving some operations). Check and set.
Here I also recommend two brush questions to you
Hangdian part of the problem(Diamond users)
These questions have brushed, selected some feeling quality is very good, but I refer to a lot of big guy practice just AC, now share these questions to everyone. Here multi-group input Java quick input to understand.
Brush questions according to specific topics:
Greedy little column:
1008,1009,2037
Dp column:
1003,1024,1025,1069,1071,1176,1203,1231,1257,1421,2084
Maze Search column:
1181(multiple method), 1010, 1010, 1016, 1043, 1044, 1072, 1180, 1195, 1241, 1254, 1431, 1728
Check and set:
1181,1232,1272,1325,1722
Other questions (test the waters) :
1007 divide and conquer 2035,1097 fast power 1686,1711 KMP 1002 large number 2138 prime sieve 1061,576 extended Euclid
6. Offer is a good offer(Star yao users) more recommended
Offer67 questions with high quality and a lot of interview questions, some algorithms have high requirements on data structure, so it is necessary to have data structure foundation in advance to brush offer with sword. In addition, sword offer has high requirements on method optimization, so it can improve the optimization of time complexity and method by brushing sword offer, while Hangzhou Electric May pay more attention to algorithm implementation. Carefully finish the offer with high quality to improve myself.
The king
What is a king? When persevering, ACM masters can choose to play games in famous places such as Cowboy Game, Vjudge, CodeForce, Atcoder, etc., or to consolidate according to the theme. But I recommend my LeetCode. For developers, Ligou is a constant companion, from unfamiliar to familiar, and there are a lot of questions, the quality is also very high, brush through the interview, written test is not a problem.
So the king in my mind is LeetCode+ Persistence. He is also slowly on the king, I hope that one day we can together on the king!
Finally, welcome to join us, pay attention to “Bigsai” to share more dry goods, to achieve the king beyond! Confused? Just bring the brush question! The up!