This repository contains the solutions for algorithmic puzzles, interview questions, datastructure implementations and materials for basic cs concepts for top tech companies like Google, Amazon, Twitter, Facebook, Apple, Yelp, Uber etc.
Interview questions for the top tech companies like Facebook, Google, Amazon, Twitter, Apple, Uber, Yelp, Nvidia are available in com.ctgi.google.problems.questions folder. Files are named as COMPANY_interview_questions.gl.py.There is one file named interview_questions.gl.py which has interview questions from different companies mixed. Company name is mentioned next to the questions in square bracket .
Answers for the questions are available in com.ctgi.google.problems folder. Every question will have the java class name mentioned next to question in square bracket  if it has an answer.
Materials for computer science concepts like operating system[Semaphores, mutual exclusion, critical section etc.], networks[dhcp, dns, nat, tcp, udp, website flow etc.], bigdata[elastic search, memcache, search etc.], machine architecture[CPU, GPU, X86 etc.] are available in com.ctgi.google.concepts.
Datastructure implemantations like Hashtable, Linkedlist[Singly, Doubly, Circular], Graph, Tree,Cache[LRU, MRU] etc. in com.ctgi.google.implementation.
Programming language related topics like java-[abstract classes, jvm, memory etc.], c-[compilation, macros, malloc, pointers, segmentation fault, stack/heap memory etc.] , comparison between C and Java are available in com.ctgi.google.languages
Common mistakes like Division by zero, array out of bound exceptions, recursive base cases are available in com.ctgi.google.mistakes
Multi threading concepts like multicore, hyperthreading etc. are available in com.ctgi.google.threads. And problems related to threading like DiningPhilosophers, ProducerConsumer are available in com.ctgi.google.threads.java. And the c implementations are in com.ctgi.google.threads.c
This library has the solutions in Java.
ctgi is licensed under MIT License. See LICENSE for full license text.
Contributions are most welcome. You can make pull requests after your commit.