DATA STRUCTURES & ALGORITHMS
Resources and Solutions
I have compiled many useful links for Data Structures and Algorithms questions and their solutions.
I have also listed the Theory Subjects, which are often ignored by students but must have vast knowledge of it to help them in their interviews.
I have also included the Placement Ready Roadmap, from
beginner level -> interview ready candidate
Table of Contents
🏆 Roadmap to Dream Placement
1️⃣ 100+ Top Product Based Companies
People only chase after FAANG, because that's what is hyped up but now there are a lot of companies which:
Pay Exceptionally Well
Good Work Life
Check their names here, and decide where you want to land.
2️⃣ Language, Data Structures, CP
- Guide to how to start coding if you have zero knowledge about this field
- Only way to become good at something is practice, an expert was once a nubie too
- Only consistency matter, coding once a week for 10 hours is not benificial, rather coding 1 hour each day will benifit you more.
- Reading/Learning/Practice resources are also listed below
- Familiarity with Syntax
- Familiarity with all keywords & Basic Concepts
- main focus is on, that are you comfortable in writing code with your preferred language
- Time Required:
- Time Required: same as above
- Time Required: same as above
Important Callout: Some companies don't allow python as a coice in their online coding test, so prepare accordingly
Data Structure and Algorithms
- Without this, No Software Engineering Interview, in a tech giant can be cracked
- Follow the DSA Crack Sheet List given below
- Time Required:
- 2-3 months
- 6-8 questions/day
- 3-6 hrs/day
- You need some projects to showcase your skills to your interviewer
- Mobile Development
- Web Development
- Machine Leraning
- Some other stuff (like, Blockchain, IOT, etc)
- Time Required: 3 months (doing on weekends 6-8 hours)
- Do a Subsequent reading, revision any day you get time
- Operating System
- OOPS, Object Oriented Skills
- DBMS, Databse Management
- Computer Networking
- CP needs time, it's not somthing thant you can master in 2 months, We will get comfortable with online platorms and get a taste of competitive programming
- Leetcode questions nearly 150-200 questions
- Easy: 30%
- Medium: 50%
- Hard: 20%
- If time allows then go for Codeforces div2 Level A,B and C question
- Time Required:
- 150-200 Questions
- 2 months
- 3-4 Ques/day
- Tech Level:
- System's overview like we will use this queue with DynamoDB and a acheduler with justification of why we are using this DB, SQS, SNS, multithreading, etc.
- for SDE-1 equivalent positions, this level is somewhat rare
- Normal Understanding:
- knowledge of dividing system & creating a rough DFD of system
- knowledge of DB Schema creation
- able to create problem-solving logic or not
- Time Required: Just need some reading of artiles/notes, can be pursued parallely
- Great Resources:
🏆 DSA Practice Resources
Remember: Deliberate practice does not mean looking for answers and memorizing it. You won't go very far with that approach. The more you are able to solve a problem yourself without any reference to answers, the more you will improve.
Data Structures and Algorithms Cracks Sheet (created by @lovebabbar) contains most necessary questions to learn and grasp about most common and important DS and Algos
Software Developer Engineer Sheet (created by @striver) contains asked during interwies by good product based companies.
The sheet is divided in 30 parts to be completed in a month to get ready for interview at a good company
This is LeetCode's official curated list of Top classic interview questions to help you land your dream job. Our top interview questions are divided into the following series:
It is containing the list of most asked company wise questions available on Leetcode.
Download Full PDFs
Every pdf file corresponds to a list of questions on leetcode for a specific company based on the leetcode company tags.
The list of questions within each pdf is further sorted by their frequency, so the most popular question for a specific company is at the top.
This Challenge is beginner-friendly. It consists of daily problems given by Leetcode.
A problem is added here each day.
🏆 Theory Subjects
These must-do questions should be done after studying these subjects
If you don't have much time left for interviews, then you can directly look at them
MUST-DO Questions for Interviews
(DBMS, CN and OS)
- What is the main purpose of an operating system? Discuss different types?
- What is a socket, kernel and monolithic kernel ?
- Difference between process and program and thread? Different types of process.
- Define virtual memory, thrashing, threads.
- What is RAID ? Different types.
- What is a deadlock ? Different conditions to achieve a deadlock.
- What is fragmentation? Types of fragmentation.
- What is spooling ?
- What is semaphore and mutex (Differences might be asked)? Define Binary semaphore.
- Belady’s Anomaly
- Starving and Aging in OS
- Why does trashing occur?
- What is paging and why do we need it?
- Demand Paging, Segmentation
- Real Time Operating System, types of RTOS.
- Difference between main memory and secondary memory.
- Dynamic Binding
- FCFS Scheduling
- SJF Scheduling
- SRTF Scheduling
- LRTF Scheduling
- Priority Scheduling
- Round Robin Scheduling
- Producer Consumer Problem
- Banker’s Algorithm
- Explain Cache
- Diff between direct mapping and associative mapping
- Diff between multitasking and multiprocessing
- What is DBMS ? Mention advantages..
- What is Database?
- What is a database system?
- What is RDBMS ? Properties..
- Types of database languages
- ACID properties (VVVVV IMP)
- Difference between vertical and horizontal scaling
- What is sharding
- Keys in DBMS
- Types of relationship
- Data abstraction in DBMS, three levels of it
- Indexing in DBMS
- What is DDL (Data Definition Language)
- What is DML (Data Manipulation Language)
- What is normalization ? Types of them ..
- What is denormalization ?
- What is functional dependency ?
- E-R Model ?
- Conflict Serializability in DBMS ..
- Explain Normal forms in DBMS
- What is CCP ? (Concurrency Control Protocols)
- Entity, Entity Type, Entity Set, Weak Entity Set..
- What are SQL commands ? Types of them..
- Nested Queries in SQL ?
- What is JOIN .. Explain types of JOINs
- Inner and Outer Join
- Practice sql queries from leetcode
- Diff between 2 tier and 3 tier architecture
- Diff between TRUNCATE and DELETE command ..
- Difference between Intension and Extension in a DataBase
- Difference between share lock and exclusive lock, definition of lock
- Define network
- What do you mean by network topology, and explain types of them
- Define bandwidth, node and link ?
- Explain TCP model ..
- Layers of OSI model
- Significance of Data Link Layer
- Define gateway, difference between gateway and router ..
- What does ping command do ?
- What is DNS, DNS forwarder, NIC, ?
- What is MAC address ?
- What is IP address, private IP address, public IP address, APIPA ?
- Difference between IPv4 and IPv6
- What is subnet ?
- Different type of delays
- 3 way handshaking
- Server-side load balancer
- RSA Algorithm
- What is HTTP and HTTPS protocol ?
- What is SMTP protocol ?
- TCP and UDP protocol, prepare differences
- What happens when you enter “google.com” (very very famous question)
- Hub vs Switch
- VPN, advantages and disadvantages of it
1️⃣ Operating System
- Why do we need it?
- CPU Burst Cycle
- CPU Scheduler
- Pre-Emptive Scheduling
- Non PreEmptive
- Role of Dispatcher
- Dispatch Latency
- Scheduling Criteria
- CPU Utilisation
- TAT [Turn around Time]
- Waiting Time
- Response Time
- Scheduling Algo
- Which algo is used in real world OS
- IMP terms to know
- How to prevent Starvation?
- What is Deadlock?
- Effects of Deadlock?
- Necessary Conditions
- Mutual Exclusion
- Hold & Wait
- No Pre-emption
- Circular Wait
- Methods for Deadlock handling
- Prevention or Avoidance
- Detection or Recovery
- Banker's Algo
- Ostrich Algo
- Resource Per-emption
- Imp Points
- CPU can direct access Registers and Main Memory
- Protection of Memory space is handled by Hardware
- OS loads Base and Limit registers
- Mapping from Logical to Physical address is done by MMU[Memory Management Unit]
- OS memory is categorised into
- for the resident of OS
- user processes
- Logical vs Physical address space
- What is Swapping
- Ex-Priority based Scheduling
- Done by Dispatcher
- Context Switch time in swapping is very high
- OS can't swap process that has pending input/output
- Imp topics to cover
- Follow youtube videos
- Memory Allocation
- Contiguous Memory Allocation
- Address Translation: Base and limit Register
- Fixed Partitioning
- Variable Partitioning
- Variable Partitioning
- dynamic storage allocation problem
- Best Fit
- Worst Fit
- First Fit
- Internal Fragmentation
- External Fragmentation
- Non-Contiguous Allocation
- Page table
- Page no
- Page offset
- Page Table Limit Register (PTLR)
- Segment Table
- Base Register
- Limit Register
- Why paging increases the context-switch time?
- Page vs Frame?
- What is TLB miss?
- Goal of mem. Mgmt
- To keep multiple processes in memory to allow multi-programming
- Where it is physically located?
- How it is implemented?
- Demand Paging
- Strategy to only load pages when they are needed
- Paging + Swapping
- user can write program for extremely large virtual address space
- [CPU utilisation & throughput] increases & [Response Time, Turn aruond time, TAT] remains same
- Less I/O would be needed to load or swap user programs into memory, so each user program would run faster
- Degree of Multiprogramming increases
- allows file and memory to be shared by 2 or more processes through page sharing
- If it is used carelessely, it can decrease performance
- paging + swapping
- Lazy Swapper
- page fault
- Pure Demand Paging
- Swap Space
- Section of hard disk used for implementing Virtual Mem. in swap
- What is Page Fault?
- Page Replacement Algo
- Optimal Page Replacement
- What is Frame Rate
Most Asked Questions (Thrashing)
- Low CPU Utilisation->Degree of Multiprogramming increases->More Page Fault->Cycle Continues->Thrashing occurs->Page fault occurs tremendously->CPU utilisation decrease sharply
- Cause of Thrashing?
- Solution to Thrashing?
- use priority based replacement algo
- allocate the exact no. of frames that are actually required
- Can we replace physical memory i.e, RAM with virtual memory?
- Is performance of virtual memory and physical memory same?
For College Exams
2️⃣ Database Management & Design
Tech Gaints: They usually ask only a bit about normalization, ACID properties(imp.) ans SQP queries & interview is done
Start Ups: They do focus on system design a lot ans in between questions on DBMS are frequently asked
So, we need to be 100% prepared for it & best way is to follow the System Design Primer (resource given below)
Questions always revolves around the type of DB, why this DB, why not that DB, how to scale, SQL vs NoSQL, your familiarity level with those DBs, etc
Relational Database Design
Storage and File Structure
Must Do (for system Design Interview)
3️⃣ Object Oriented Programming
What to expect from these resources,
- To the point for your Interview Preparation
- Sufficient for Academics
Pillars of OOPS
4️⃣ Computer Networks
Misc & System Design
🏆 Other Notes and Resources
🔖Best book for Coding Interviews -
Some other helpful books
Urls for other Notes, and Reading Resources picked from different editorials.
Last Minute Notes
Other coding websites,
take you forward,
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature)
- Commit your Changes (
git commit -m 'Add some AmazingFeature')
- Push to the Branch (
git push origin feature/AmazingFeature)
- Open a Pull Request
Distributed under the MIT License. See
LICENSE for more information.
Project Link: https://awesomeopensource.com/project/sachuverma/DataStructures-Algorithms
Sachin Verma : [email protected]
Drop a ⭐ if you like my work😄