Chapter Introduction
Chapter Content
The previous quick-start chapter covered ten sorting algorithms and guided you through implementing common data structures found in algorithm problems. However, it did not truly begin problem-solving practice.
Starting from this chapter, the focus will shift to solving problems, where you will learn several core algorithm frameworks and then reinforce these frameworks through extensive exercises.
This chapter is quite intensive, as all articles and exercises on this site are based on the algorithm frameworks summarized here.
Even I, myself, gain new insights from this chapter during problem-solving, continuously updating and optimizing its content.
Therefore, I recommend readers frequently revisit this chapter throughout their learning process. I am confident that each review will bring you new insights.
For Beginners
Beginners might find this chapter challenging to read, and that's completely normal.
Nevertheless, I insist on making this chapter the starting point for problem-solving practice. I encourage everyone to take a look because even a brief impression of this chapter will benefit you in future problem-solving endeavors. I am confident in this.
For beginners, it's okay to skip parts that are hard to understand, and avoid stubbornly persisting with DFS.
In other words, don't feel compelled to read any referenced articles just because this chapter contains links to them. It is not necessary.
The links are meant to help readers with a certain level of familiarity with the site to connect knowledge points. You don't need them right now.
Don't worry, the articles and exercises in the following chapters will all revolve around the content of this chapter. They effectively serve as a framework to guide you through the application of these concepts 100 times. Many questions will make sense to you then, and when you revisit this chapter, everything will become clear.
For Readers with Some Foundation
The framework is beneficial, but frequent hands-on practice is necessary to truly internalize algorithmic thinking and use it effortlessly.
Many readers have told me: with the framework in mind, they can generally come up with ideas for most problems, but when it comes to writing code in a coding test, it's not easy to get it right. These readers often read the articles on this site but don't practice enough on their own.
If you have similar difficulties, spend some time studying the articles marked as "Enhanced Practice" in the site's directory. These are newly added problem sets that can be solved using the code frameworks summarized in this chapter. I recommend you try them out yourself.
Finally, I wish you success in overcoming the challenges of algorithms soon!