How many algorithmic questions do you need to brush for an Android job interview at a big factory to be considered stable?

Words written in the front

There are many lessons to be learned from the selection criteria of foreign talents. In recent years, the domestic Internet interview process has gradually moved closer to foreign countries. Large companies such as Bytedance and BAT 手撕算法题have become mandatory actions.

The test algorithm is also a low-cost method for companies to interview and screen people. If you write the algorithm and pass it, either you are smart or you are diligent.

No matter what language you are learning: C, C++, python, Java, GO, you must pass the algorithm level. Moreover, the algorithm can be regarded as a watershed of salary level, and it occupies a certain position when negotiating salary with HR.

So, how many algorithmic questions do you need to brush in an interview with a major Android company to be considered stable?

The position of the algorithm

The big factory test algorithm generally consists of two steps. The first step: let you talk about your ideas directly; the second step: let you write code in practice.

Through these two steps, you can see whether your programming skills are deep. In addition, you can also examine your other abilities in multiple dimensions, such as: clear logical thinking, debugging ability, coding habits, and whether you can write Maintainable code, etc... Therefore, in recent years, the proportion of algorithms in the interviews of major domestic Internet companies has increased. The algorithms are not solid, and the written test may be directly brushed.

Now that you understand the importance, let's start working hard.

The following are the frequently asked algorithm questions for interviews with big factories

Generally speaking, the data structure and algorithm will be tested together. Here, I have listed the core knowledge points of the interview. You can refer to and study and break them one by one.

  • Stack and queue: first in first out, last in first out
  • Linear linked list
  • Search: sequential search, binary search
  • Sorting: exchange type, insertion type, selection type
  • Tree, Binary Tree, Graph: Depth First (DFS), Breadth First (BFS)
  • Recursion
  • Divide and conquer
  • Sliding window
  • Three awesome algorithms: backtracking, greedy, and dynamic programming (DP)

How to learn algorithms?

The best or the most dumb way is to brush the questions. Leetcode is strongly recommended: https://leetcode-cn.com
recommends brushing more than 300 questions, covering simple, medium, and difficult questions. Before the interview, you should train your hand feel. Don't be unfamiliar. You can choose to keep one question every day or a few days.

It is recommended to read these books before brushing the questions (the understanding of the brushing questions will be of great help):

"Comic Algorithm-Xiao Hui's Algorithmic Journey"

If you don't have any algorithm foundation before, this book is very suitable for you, you can supplement the basic knowledge of data structure and algorithm, like what is time complexity, space complexity, search, sorting, etc.
If you have a certain foundation, it is recommended that you skip directly to the last part of the actual algorithm.

"Sword Finger Offer"

A very classic book, people who learn algorithms must read it. But be careful, the topics in this book are written in C++, if you are a Java developer, it may be a little affected. But remember that the most important thing about learning algorithms is the idea and method of problem-solving. What language is used to implement it is second. If you have a lot of time, I suggest you use Java language to implement it again.

"Labuladong's Algorithm Cheat Sheet"

Very recommended! This is a very new book. Before writing the book, the author opened a project on Github. It mainly explains LeetCode's problem-solving routines. The total number of Starts ranks in the top 40. At the beginning of the book, the basic thinking and routines of the learning algorithm are explained. It is recommended that you read this book and use leetcode to brush the questions at the same time . The effect is very good!

"Introduction to Algorithms"

If I do not recommend this book, does it seem that I am a bit low? This is a must-see and must-learn classic tome for undergraduate students. Written by foreign bigwigs and domestic translation classics. Although they are classics, they are not recommended for students who are just getting started with algorithms, because you may have to give up algorithms after reading this book, which is difficult to understand. It is recommended to start this book with a certain foundation.

If you think reading is boring, I can recommend you to read some geek time columns, but they are charged, but the quality is very high.

"The Beauty of Data Structures and Algorithms"

This column is text + voice, and the author is Wang Zheng, a former Google engineer. He adopts the learning method that is most suitable for engineers, not limited to a specific programming language, starting from the actual development scenario, teaching you from the simple to the deep to teach you the methods of learning data structures and algorithms, helping you understand basic concepts and core theories, and in-depth understanding of algorithms Essence, to help you improve your ability to use data structures and algorithmic thinking to solve problems.

"40 Lectures on Algorithm Interview Clearance"

This column is a video, and the author is Qin Chao, a former Facebook engineer. The author will use the whiteboard to take you step by step to solve the problem, step by step, layer by layer, each question will use a variety of problem-solving methods. I basically finished reading it, and gained a lot.

Leetcode , books, and geek columns can be parallelized, combining learning and practicing, don't just ignore it.

Review suggestions

(1) Reasonably arrange review time :

If you are preparing for the next spring recruitment, you don't have to be too nervous about time, and you don't have to sleep and eat. As long as you prepare well, you can deal with the interview calmly.

The personal recommendation for the review cycle is three months . It should not be too long. Four or five hours a day (above) is enough (high-efficiency and focused learning). After a long time, it is easy to slack off or work behind closed doors. It is best to go out and start after two months. Test the waters to test your own learning effects.

The formulation of the review plan and the control of the progress are also very important. You can refer to other people's learning plans to learn, and then make appropriate adjustments according to your actual situation.

(2) Suggestions for review content:

It is recommended to focus on basic knowledge, especially for students who are preparing for school recruitment. At this stage, employers will pay more attention to this.

(This module has a lot of content to finish, and a more systematic information has been organized. A detailed explanation will be launched later . Friends who need a complete review of the information can directly click on the blue font in the text to get it)

(3) Review bibliography:

  • "First Line of Code"
  • "Android Development Art Exploration"
  • "Android Advanced Advanced"
  • "Sword Finger Offer"
  • "Programmer Interview Golden Code"
  • "Programmer Code Interview Guide IT Famous Enterprise Algorithm and Data Structure Problem Optimal Solution"
  • "The Beauty of Programming-Microsoft Technical Interview Experience"
  • ……

You can read all these classic books. (There are a lot of books, you can click the blue font in the text to get the complete book list )

(4) Other parts:

In addition to brushing questions and reading books, systematically reviewing basic knowledge, and reviewing your own project experience , and discovering the highlights. In a plethora of resumes, whether a resume can impress the interviewer or not depends on whether there are highlights in your resume. These highlights can be seen from your project.

For project-related preparations, please refer to this article: What does the project experience say? Miss ByteDance teaches you "routine" interviewer hands-on!

appendix

In the interview, there are definitely not only algorithmic questions. Recently, I have reviewed the interview questions of Likou and Niuke, and asked a lot of friends who participated in the interview with Dachang recently, and then I compiled a "Android Dachang Interview Guide for 2021" Encyclopedia, everyone is welcome to come and collect it. I believe this information will definitely be helpful to everyone's interview.

The following are the interview questions that are frequently asked in the Android post of Alibaba and other major manufacturers collected from websites such as Niuke. I hope it will be helpful to friends who are preparing for the interview.

Students with unstable algorithmic foundations, who want to enter the big factory, don't you come to join us in happy white prostitution?

I put the full version on my computer together with other Android learning materials. If you need it, you can find me for free by poke the blue font here

Android core knowledge notes

Analysis of high-frequency interview questions for Baidu, Ali, Tencent, and Bytedance Android in 2020

2020 latest Android big factory high-frequency interview questions analysis Daquan

Finally, here, I hope everyone can make good use of the above preparations, show their fists in the next interview, and win their favorite offers in one fell swoop.

If you need it, you can find me for free by stamping the blue font here .

Recommended reading

Guess you like

Origin blog.csdn.net/BUGgogogo/article/details/113642535