http://get-that-job-at-google.blogspot.in/ 에서 다음 기사를 빌 렸습니다.
코딩 지식 C / C ++ 및 Java는 Google 면접관이 선호하는 프로그래밍 언어입니다. 당신은 그들 중 적어도 하나를 정말로 잘 알아야합니다. 전화 화면 인터뷰와 현장 인터뷰에도 코드를 작성해야합니다.
CS 인터뷰 추천 도서 : 알고리즘 소개-코멘
프로그래밍 인터뷰
코딩 인터뷰 균열
인터뷰 알고리즘
코딩 연습을위한 권장 웹 사이트 : InterviewStreet, Topcoder
Big-O 이것이 알고리즘 인터뷰를 준비하는 출발점이되어야합니다. 기본 복잡성 분석은 고용되지 않도록 보장하므로 어려움을 겪지 않아야합니다. O, Θ 및 Ω 표기법을 숙지하고 이해해야합니다. Data Structures and Algorithms 책의 복잡성 분석 섹션을 읽는 것이 좋습니다.
정렬 QuickSort 및 MergeSort와 같은 알고리즘 O (n * lgn)을 쉽게 작성할 수 있어야합니다. 최고, 최악 및 평균 사례 복잡성을 비교하고 이해합니다. 위키에서이 테이블이 매우 편리하다는 것을 알았습니다. 모든 정렬 알고리즘의 중요한 속성을 나열합니다. 다른 알고리즘은이를 개선하기 때문에 Bubble sort 또는 Insertion sort와 같은 기본 O (n ^ 2) 알고리즘을 무시하지 마십시오. 인터뷰는 기본 아이디어를 개선하는 데 관한 것이므로 정렬 알고리즘이이 프로세스에 도움이됩니다.
해시 테이블 의심 스러운 경우 해시 테이블을 생각하십시오. 그것들은 대부분의 문제에 유용하며 종종 결과를 캐싱하여 일부 문제의 시간 복잡성을 개선하는 데 도움이됩니다.
트리 기본 트리 구성, 순회 및 조작 알고리즘을 거칩니다. 이진 검색 트리를 기반으로 알고리즘을 구현할 수 있어야합니다. AVL 트리, 레드-블랙 트리, Trie, n-ary 트리 등 인터뷰에서 코드를 작성할 것으로 예상되지는 않지만 균형 잡힌 트리에 익숙해야합니다. 순서, 포스트 오더 및 사전 오더 순회에 대한 철저한 지식이 필요합니다. 이러한 순회 중 하나를 간단하게 수정하여 많은 트리 문제를 해결할 수 있습니다.
그래프
그래프는 컴퓨터 과학에서 매우 중요한 개념입니다. 그래프 (오브젝트 및 포인터, 행렬 및 인접성 목록)의 세 가지 기본 표현을 연습하고 장단점을 익히십시오. 인터뷰하는 동안 시간이 많지 않으므로 매우 복잡한 것을 기 대해서는 안됩니다. 그러나 기본 그래프 탐색 알고리즘 (DFS 및 BFS)은 필수이므로 모든 기본 표현으로 구현해야합니다. 최소 스패닝 트리 알고리즘 (Kruskal 및 Prim)뿐만 아니라 Dijkstra 또는 Floyd-Warshall 알고리즘을 구현할 수 있어야합니다. 많은 정렬 문제에 놀랍도록 매우 유용하기 때문에 토폴로지 정렬에 대해 배웁니다.
동적 프로그래밍 구현이 작기 때문에 아마도 가장 중요한 주제 일 것입니다. 35-40 분 동안 2-3 개의 동적 알고리즘을 구현할 수 있어야합니다. 이 블로그 나 웹에서 리소스를 확인할 때 인터뷰 당 최소 하나의 동적 프로그래밍 질문이 있어야한다는 것을 알게 될 것입니다.
운영 체제 프로세스, 스레드 및 동시성 문제에 대해 학습합니다. 뮤텍스, 세마포어, 모니터 및 작동 방식에 대해 알고 있어야합니다. 교착 상태 및 라이브 록이 무엇이며이를 방지하는 방법을 이해하십시오. 컨텍스트 전환, 스케줄링 등에 대해 알아보십시오.
수학 계산, 조합 및 확률에 익숙해 져야합니다.
Google 간행물 시간이 있으면 아래에 나열된 Google의 최신 간행물을 읽으십시오. 구글 파일 시스템
구글 빅 테이블
구글 맵리 듀스