为工程师准备的 50 道数据结构和算法面试题 已翻译 100%

oschina 投递于 2018/12/19 17:03 (共 20 段, 翻译完成于 01-02)
阅读 22319
收藏 240
21
加载中

There are a lot of computer science graduates and programmers applying for programming, coding, and software development roles at startups like Uber and Netflix; big organizations like AmazonMicrosoft, and Google; and service-based companies like Infosys or Luxsoft, but many of them have no idea of what kind of programming interview questions to expect when you’re applying for a job with these companies.

已有 1 人翻译此段
我来翻译

In this article, I’ll share some _frequently asked programming interview questions_from different interviews for programmers at different levels of experience, from people who have just graduated from college to programmers with one to two years of experience.

Coding interviews are comprised mainly of data structure and algorithm-based questions as well as some of the logical questions such as, How do you swap two integers without using a temporary variable?

已有 1 人翻译此段
我来翻译

I think it’s helpful to divide coding interview questions into different topic areas. The topic areas I’ve seen most often in interviews are array, linked list, string, binary tree, as well as questions from algorithms (e.g. string algorithm, sorting algorithms like quicksort or radix sort, and other miscellaneous ones), and that’s what you will find in this article.

已有 1 人翻译此段
我来翻译

It’s not guaranteed that you will be asked these coding or data structure and algorithmic questions, but they will give you enough of an idea of the kinds of questions you can expect in a real programming job interview.

Once you have gone through these questions, you should feel confident enough to attend any telephonic or face-to-face interviews.

已有 1 人翻译此段
我来翻译

Btw, there is no point in attempting these questions if you don’t have sufficient knowledge of essential Data Structure and Algorithms or you have not touched them from ages.

In that case, you should take a good course like Algorithms and Data Structures Part 1 and 2 By Robert Horvick to refresh your DS and algorithms skills.

已有 1 人翻译此段
我来翻译


Top 50 Algorithms and Coding Interview Questions

Without any further ado, here is my list of some of the most frequently asked coding interview questions from programming job interviews:

1. Array Coding Interview Questions

An array is the most fundamental data structure, which stores elements at a contiguous memory location. It is also one of the darling topics of interviewers and you will hear a lot of questions about an array in any coding interview, e.g. reversing an array, sorting the array, or searching elements on the array.

The key benefit of an array data structure is that it offers fast O(1) search if you know the index, but adding and removing an element from an array is slow because you cannot change the size of the array once it’s created.

In order to create a shorter or longer array, you need to create a new array and copy all elements from old to new.

已有 1 人翻译此段
我来翻译

The key to solving array-based questions is having a good knowledge of array data structure as well as basic programming constructors such as loop, recursion, and fundamental operators.

Here are some of the popular array-based coding interview questions for your practice:

  1. How do you find the missing number in a given integer array of 1 to 100? (solution)

  2. How do you find the duplicate number on a given integer array? (solution)

  3. How do you find the largest and smallest number in an unsorted integer array? (solution)

  4. How do you find all pairs of an integer array whose sum is equal to a given number? (solution)

  5. How do you find duplicate numbers in an array if it contains multiple duplicates? (solution)

  6. How are duplicates removed from a given array in Java? (solution)

  7. How is an integer array sorted in place using the quicksort algorithm? (solution)

  8. How do you remove duplicates from an array in place? (solution)

  9. How do you reverse an array in place in Java? (solution)

  10. How are duplicates removed from an array without using any library? (solution)

These questions will not only help you to develop your problem-solving skills but also improve your knowledge of array data structure.

If you need more advanced questions based upon array then you can see also seeThe Coding Interview Bootcamp: Algorithms + Data Structures, a bootcamp style course on algorithms, especially designed for interview preparation to get a job on technical giants like Google, Microsoft, Apple, Facebook etc.

And, if you feel 10 is not enough questions and you need more practice, then you can also check out this list of 30 array questions.

已有 1 人翻译此段
我来翻译

2. Linked List Programming Interview Questions

linked list is another common data structure that complements the array data structure. Similar to the array, it is also a linear data structure and stores elements in a linear fashion.

However, unlike the array, it doesn’t store them in contiguous locations; instead, they are scattered everywhere in memory, which is connected to each other using nodes.

A linked list is nothing but a list of nodes where each node contains the value stored and the address of the next node.

已有 1 人翻译此段
我来翻译

Because of this structure, it’s easy to add and remove elements in a linked list, as you just need to change the link instead of creating the array, but the search is difficult and often requires O(n) time to find an element in the singly linked list.

This article provides more information on the difference between an array and linked list data structures.

It also comes in varieties like a singly linked list, which allows you to traverse in one direction (forward or reverse); a doubly linked list, which allows you to traverse in both directions (forward and backward); and finally, the circular linked list, which forms a circle.

In order to solve linked list-based questions, a good knowledge of recursion is important, because a linked list is a recursive data structure.

已有 1 人翻译此段
我来翻译

If you take one node from a linked list, the remaining data structure is still a linked list, and because of that, many linked list problems have simpler recursive solutions than iterative ones.

Here are some of the most common and popular linked list interview questions and their solutions:

  1. How do you find the middle element of a singly linked list in one pass? (solution)

  2. How do you check if a given linked list contains a cycle? How do you find the starting node of the cycle? (solution)

  3. How do you reverse a linked list? (solution)

  4. How do you reverse a singly linked list without recursion? (solution)

  5. How are duplicate nodes removed in an unsorted linked list? (solution)

  6. How do you find the length of a singly linked list? (solution)

  7. How do you find the third node from the end in a singly linked list? (solution)

  8. How do you find the sum of two linked lists using Stack? (solution)

These questions will help you to develop your problem-solving skills as well as improve your knowledge of the linked list data structure.

If you are having trouble solving these linked list coding questions then I suggest you refresh your data structure and algorithms skill by going through Data Structures and Algorithms: Deep Dive** Using Java** course.

You can also check out this list of30 linked list interview questions for more practice questions.

已有 1 人翻译此段
我来翻译
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(6)

mickelfeng
mickelfeng
不错,值得收藏
卯兔
卯兔
有不翻墙的答案嘛
久永
久永
然而没有卵用,培训班秒秒钟将你破解。除了测量智商,别无他法了已经。
Awesomes
Awesomes

引用来自“断风格男丶”的评论

链接都要翻墙么?
对 要翻墙
断风格男丶
断风格男丶
链接都要翻墙么?
NickWilde
NickWilde
不错,值得收藏
返回顶部
顶部