algo-basic
In order to allow everyone to better read high-quality technical articles such as algorithms and computer basics (including computer networks, operating systems, MySQL, etc.), I have organized these articles into a PDF with a high-definition table of contents. However, for the convenience of correcting errors later And add new content, so there is this Github.
So, this Github will share articles on data structures, algorithms, computer basics, my learning experience, etc. Whether you are dealing with interviews, especially school recruitment, or want to improve your internal skills , I think these articles of mine will It may be helpful to you. These articles are basically updated here after receiving consistent praise from major blogging platforms.
In addition, if it is helpful after reading the article, Shuaidi would like to ask you to do me a favor and give me a Star to satisfy my vanity. If there are more Stars, maybe I will have the opportunity to take a screenshot and send it to Moments, pretending Pretending to be B, hee hee.
Finally, if you want to read the PDF or epub version of the e-book, you can go to my WeChat public account Shuai Di Wan Programming and reply to the programmer's inner strength training , and you can get the PDF/epub version of the e-book compiled by all the articles with a high-definition table of contents. Books, you can just scan and follow them.
Table of contents
- learning algorithm
- Learning algorithm experience sharing
- Learn recursion
- Learn dynamic programming
- Learn binary search
- Reproduce the campus recruitment algorithm interview scene
- Learn string matching algorithms
- Must learn algorithmic thinking and skills
- Must learn sorting algorithm
- Get a binary tree
- Get the linked list
- Learn data structures
- Learn Computer Network
- Experience summary written for current students
- Personal experiences and reflections
- Learn operating system
- MySQL
- Java
- Git
- High-quality book recommendations that I have read
- Follow-up
- Appreciate
learning algorithm
Learning algorithm experience sharing
- What algorithms must programmers master?
- As a novice, how should I learn algorithms?
- After completing 500 questions on leetcode, is it safe to pass the written test/interview?
Learn recursion
- Why can't you learn recursion? Say goodbye to recursion and talk about some of my experiences
- Training 1: Find the upper median in two sorted arrays of equal length
- Training 2: Find the Kth decimal of two ordered arrays
- Training 3: Find the median of two ordered arrays (on the importance of thinking transformation)
Learn dynamic programming
- Is dynamic programming difficult? After answering 40 questions in DP, I summarized these routines!
- Optimization of dynamic programming
- Training 1: Detailed explanation of three one-dimensional dynamic programming algorithm problems
- Training 2: Detailed explanation of leetcode221 question: Maximum square
Learn binary search
- Are you sure you can do binary search? Can it be used to design scams in life?
- Two seemingly simple algorithm questions
- Summary of dichotomy questions
Reproduce the campus recruitment algorithm interview scene
- Remember a ByteDance algorithm interview question: deformed linked list reversal
- Remember an interview with a hand-shredded algorithm: ByteDance’s interviewer hit me four times in a row
- An Alibaba written test question: How I solved the Joseph ring problem with one line of code
- Remember an interview with Alibaba: The interview focused on the LRU cache algorithm design
- The application of prefix sum starts with a NetEase written test question
- Interview abuse: remember a shopee algorithm interview question: the optimal solution of the minimum stack
- Interview abuse: How is the filtering of sensitive words in the game implemented?
- Find the most frequent number from 2 billion, 4 billion, 8 billion integers using only 2GB memory
Learn string matching algorithms
- Graphical string matching KMP algorithm
- String matching Boyer-Moore algorithm: How is the search function implemented in text editors?
Must learn algorithmic thinking and skills
- Striving for the ultimate: How do I turn easy-level algorithm questions into hard-level ones?
- Share an algorithmic problem with a clever solution
- Factorial is simple? To be honest, you may not necessarily understand these factorial-related interview questions!
- Interviewer, please don’t ask me such simple yet difficult algorithm questions.
- Awesome! One line of code can actually solve so many algorithm problems that have troubled me for a long time.
- Shuaidi has summarized this high-frequency algorithm problem-solving technique for you to help you solve problems faster!
- What are the tricks in algorithmic data structures?
- A guide to pretending to be bit-savvy
- Find missing integers
Must learn sorting algorithm
- Comic: Please don’t ask me about quick sorting again
- Comic: Why is O(n) complexity radix sort not as fast as quick sort?
- Comic: External sorting: How to sort 2 billion integers using 2GB of memory? (Actually, this is also a common interview question)
- Stop scrolling, programmers must learn the top ten classic sorting algorithms, just read this article
Get a binary tree
- Preorder traversal of binary trees (non-recursive version)
- Inorder traversal of a binary tree (non-recursive version)
- Postorder traversal of binary trees (non-recursive version)
- Print binary tree from top to bottom
- Construction of binary tree
- Mirror of binary tree
- substructure of binary tree
- Postorder traversal sequence of binary search tree
- Rebuild a binary tree
Get the linked list
- Linked list training 1: Delete the Kth node of a singly linked list
- Linked list training 2: Delete the intermediate node of a singly linked list
- Linked list training 3: How to reverse a singly linked list gracefully
- Linked list training 4: Joseph problem of circular singly linked list
- Linked list training 5: Three methods will help you judge palindromic linked lists elegantly
- Linked list training 6: Divide the one-way linked list according to a certain value into the form of small on the left, equal in the middle, and large on the right
- Linked list training 7: copy a linked list containing random pointer nodes
- Linked list training 8: Reverse the order between each K nodes of the singly linked list
- Linked list training 9: Convert the search binary tree into a doubly linked list
Learn data structures
- What the hell is a binary heap?
- What the hell is heap sort?
- Comic: What is an avl tree?
- Tencent interview question: With binary search trees, why do balanced trees need red-black trees?
- High-frequency interview: What is a B-tree? Why do file indexes use B-trees instead of binary search trees?
- In the future, if an interviewer asks you about the jump table, just throw this article to him.
Learn Computer Network
- Understand how one computer sends data to another computer in one article
- Random talk: What is https? This should be the best article on the entire Internet about https.
- Illustration: How did a host that was a complete stranger achieve the correct delivery of data for two days?
- What is a digital signature
- What is congestion control?
- What is TCP flow control
- What is the broadcast routing algorithm? How to resolve broadcast storm?
- What does the interviewer want to test us about the three-way handshake and the four-way wave?
- Where did the computer's IP come from? I haven't configured it yet
- The difference between circuit switching and packet switching
Experience summary written for current students
- I have studied programming for four years, and I recommend these high-quality learning tools, websites and materials to you.
- After thinking about it for a long time, this is a learning route suitable for the general public.
- Core compilation: Those basic computer knowledge that will make you take off: what to learn and how to learn?
- Well, I failed two interviews with Tencent in the spring recruitment. Let me share my failed + silly interview experience.
- After two months of autumn recruitment, let’s talk about some important knowledge points in the spring and autumn recruitment.
- It is necessary to talk about the upcoming spring recruitment (experience + importance + how to prepare)
- Tell me about the projects you worked on during the Spring and Autumn Recruitment period and recommend a few projects + interview videos
Personal experiences and reflections
- Autumn recruitment is over, it’s just an ordinary three years of college for me
- In the past 15 months of writing a public account, what have I learned and gained along the way?
- My 2019
- In the more than a year since I started writing articles on public accounts, I have experienced being trolled, blocked, and praised. I feel sour.
- The first original article in 2020: How I make myself better
- Let me talk about my recent daily life, study and thinking
Learn operating system
This part of the article is a bit sparse and will be gradually added later, so stay tuned.
- Remember an interview: What are the communication methods between processes? How to communicate?
MySQL
- Tencent interview: What are the reasons why a SQL statement executes slowly?
- Interview tips: MySQL index related
- Let me go, these two little tricks not only allowed my SQL statements to avoid pitfalls, but also improved them 1000 times.
Java
- Thread safety (Part 1): Thoroughly understand the volatile keyword
- Thread safety (Part 2): Thoroughly understand synchronized (from biased locks to heavyweight locks)
- In one sentence, learn various locks such as heavyweight locks, spin locks, lightweight locks, biased locks, pessimistic locks, and optimistic locks.
- The core of concurrency: what is CAS? How does Java8 optimize CAS?
- Do you dare not to learn the most important synchronization classes in the Java concurrency package?
- Please standardize your coding style
Git
- I recently learned Git from scratch and summarized this Git command guide
High-quality book recommendations that I have read
- Recommended high-quality books I have read during my four years in college
- What books are worth reading about algorithms and computer basics?
Follow-up
I hope this e-book is helpful to you. If everyone responds well, I will continue to add content later. This is currently a preliminary version and may have many shortcomings, such as typos and incorrect writing of certain knowledge points. If you encounter If you have any questions, you can find me through my official account. You can leave a message on my official account, or add my personal WeChat directly.
Appreciate
It is not easy to organize e-books. If you find it helpful and want to reward the author, you can reward me through this payment code. The amount is not important, but your intention is the most important. The main thing is that I can use this reward status. I hope everyone will comment on this e-book, hehe.
Note: You can note your nickname when making a payment. It can be CSDN, WeChat, GitHub, etc.