├── Behavioral.md ├── CSFundamentals.md ├── Coding.md ├── CodingCompanyTopQuestions.md ├── LowLevelDesign.md ├── README.md └── SystemDesign.md /Behavioral.md: -------------------------------------------------------------------------------- 1 | # Behavioral Interview Questions 2 | 3 | ## STAR format 4 | 5 | - https://www.thebalancecareers.com/what-is-the-star-interview-response-technique-2061629 6 | - https://www.themuse.com/advice/star-interview-method 7 | - [How to Answer Behavioral Interview Questions](https://www.thebalancecareers.com/how-to-answer-behavioral-interview-questions-2059622) 8 | - [How to Answer Behavioral Interview Questions - Video](https://youtu.be/RFqO4cZfp80) 9 | - https://in.indeed.com/career-advice/interviewing/behavioral-interview-questions 10 | 11 | ## Questions 12 | 13 | ### Facebook/Meta 14 | 15 | - https://igotanoffer.com/blogs/product-manager/behavioral-interview-questions-tech-companies 16 | - https://youtu.be/XZackwz_Shk 17 | - https://youtu.be/WCsEOAH6zeQ 18 | - https://www.interviewkickstart.com/interview-questions/facebook-behavioral-interview-questions 19 | - Tell me about a recent / favorite project and some of the difficulties you had 20 | - Tell me about the greatest accomplishment of your career 21 | - Tell me about a time you struggled to work with one of your colleagues 22 | - Tell me about a time you had to resolve a conflict in a team 23 | - Tell me about a time you were given feedback that was constructive 24 | - Tell me about a time you had to step up and take responsibility for others 25 | - Tell me about a time you struggled on one of your software projects 26 | - Tell me about your worst boss and why they were bad 27 | 28 | ### Google 29 | 30 | - Tell me about a time when you got stuck and your senior helped you solve the problem. 31 | - Tell me about a time when your junior got stuck and you helped him solve the problem. 32 | - How do you define being successful? How do you become successful? 33 | - Tell me about a time when you stood up for someone and how it helped them. 34 | - Tell me about a time when you put someone’s interests above your own. 35 | - Working in a company like Google, you would be faced with dynamically changing requirements. How will you cope up? 36 | - Working in a company like Google, what all factors should you think of about the users for whom you are building the product? 37 | - Tell me about a time where you came up with an approach, and it got implemented into production over other approaches. 38 | - Tell me about an incident where you overcome a very challenging issue. 39 | 40 | ## Amazon 41 | 42 | - https://igotanoffer.com/blogs/tech/amazon-behavioral-interview 43 | - https://leetcode.com/discuss/interview-question/437082/Amazon-Behavioral-questions-or-Leadership-Principles-or-LP/397167 44 | - Tell me about yourself. 45 | - Tell me about a situation where you had a conflict with someone on your team. What was it about? What did you do? How did they react? What was the outcome? 46 | - Give an example of when you saw a peer struggling and decided to step in and help. What was the situation and what actions did you take? What was the outcome? 47 | - Tell me about a time you committed a mistake? 48 | - Tell me about a time when your earned your teammate's trust? 49 | - Tell me about a time when you couldn't meet your deadline? 50 | - Tell me about a time when your teammate didn't agree with you? What did you do? 51 | - Tell me about a time when you took important decision without any data? 52 | - Tell me about a time when you helped one of your teammates? 53 | - Have you ever been in a situation where you had to make a choice among a few options, but did not have a lot of time to explore each option 54 | - Have you ever failed at something? What did you learn from it? 55 | - Tell me about a time when you went out of your way to help someone? 56 | - Time when you came up with novel solution. 57 | - Received negative feedback from manager and how you responded. 58 | - Time when you went above and beyond your job responsibilities. 59 | - Time when you did not have enough data and had to use judgement to make decision. 60 | - Time when you helped someone in their work. 61 | - Time when you helped someone grow in career and it benefited them. 62 | - Time when you helped someone grow but did not benefit them. 63 | - Time when you were 75% through a project and realized you had the wrong goal. 64 | - Time when your team members were not supporting something but you pushed and went for a more optimal solution. 65 | - Time when you pushed back a decision from your management for better long term benefits. 66 | - Time when you failed to meet your commitment 67 | - Tell me about yourself. Tell me about a project you're working on. 68 | - Time when you were working on a project on a time constraint 69 | - Time when you didn't meet a deadline 70 | - Time when you needed help from somebody 71 | - Tell me about a time you had to help a team member struggling with a task. 72 | - Tell me about a time you faced an obstacle and how you overcame it. 73 | - Tell me about one of your projects? 74 | - Tell me a time you took some on some risk 75 | - Have you ever gone out of your way to help a peer? (ownership) 76 | - Have you ever had to make a tough decision without consulting anybody? (bias for action) 77 | - Tell me about a time when you learned new technologies 78 | - Tell me about a time you had multiple solutions and you had to select an optimal one 79 | - Tell me about a time when you innovated and exceeded the expectation 80 | - How would you help a new employee who is facing technical difficulties? 81 | - Tell me about time when you faced a difficult challenge. 82 | - Tell me about a time when you thought of an unpopular idea. 83 | - Tell me about a time when you had conflicting ideas with your teammates and how did you resolve them? 84 | - Tell me about a project you're proud of 85 | - Tell me about a time when you faced a setback initially but still achieved the goal. 86 | - Tell me about a a time when you had to cut corners to meet a deadline 87 | - Tell me about a time when you felt under pressure that you wouldn't be able to get something done or had to take a pivot at the last minute -------------------------------------------------------------------------------- /CSFundamentals.md: -------------------------------------------------------------------------------- 1 | # Computer Science Fundamentals 2 | 3 | ## OS 4 | 5 | ### History of OS 6 | 7 | - [Functions](https://www.geeksforgeeks.org/functions-of-operating-system/) 8 | - [Goals](https://www.tutorialspoint.com/operating-system-design-goals) 9 | 10 | ### Types of OS 11 | 12 | - https://www.geeksforgeeks.org/types-of-operating-systems/ 13 | 14 | ### Intro to UNIX 15 | 16 | - https://www.geeksforgeeks.org/introduction-to-unix-system/ 17 | 18 | ### Process Management 19 | 20 | - [Scheduler](https://www.geeksforgeeks.org/process-schedulers-in-operating-system/) 21 | - [Process State](https://www.geeksforgeeks.org/states-of-a-process-in-operating-systems/) 22 | 23 | ### Scheduling algos 24 | 25 | - [FCFS](https://www.guru99.com/fcfs-scheduling.html) 26 | - [SJF](https://www.guru99.com/shortest-job-first-sjf-scheduling.html) 27 | - [Longest Remaining time first](https://www.geeksforgeeks.org/longest-remaining-time-first-lrtf-cpu-scheduling-algorithm/) 28 | - [Round Robin](https://www.guru99.com/round-robin-scheduling-example.html) 29 | - [Priority Scheduling](https://www.guru99.com/priority-scheduling-program.html) 30 | - [Multilevel Queue](https://www.geeksforgeeks.org/multilevel-queue-mlq-cpu-scheduling/) 31 | 32 | ### Threads 33 | 34 | - [Types(gfg)](https://www.geeksforgeeks.org/threads-and-its-types-in-operating-system/) 35 | - [Types(JavaT)](https://www.javatpoint.com/threads-in-operating-system) 36 | - [User level & Kernel level](https://www.geeksforgeeks.org/difference-between-user-level-thread-and-kernel-level-thread/) 37 | - [Multithreading](https://www.geeksforgeeks.org/multithreading-in-operating-system/) 38 | - [Zombie processes](https://www.javatpoint.com/what-is-zombie-process) 39 | 40 | ### Process Synchronization 41 | 42 | - [Types of processes-1](https://www.geeksforgeeks.org/introduction-of-process-management/) 43 | - [Types of processes-2](https://www.geeksforgeeks.org/process-synchronization-set-2/) 44 | - [Critical section](https://www.geeksforgeeks.org/g-fact-70/) 45 | - [Interprocess communication](https://www.geeksforgeeks.org/inter-process-communication-ipc/) 46 | - [Semaphore](https://www.geeksforgeeks.org/semaphores-in-process-synchronization/) 47 | - [Peterson's Algorithm](https://www.geeksforgeeks.org/petersons-algorithm-in-process-synchronization/) 48 | - [Producer consumer problem-1](https://www.geeksforgeeks.org/producer-consumer-problem-using-semaphores-set-1/) 49 | - [Producer consumer problem-2](https://www.javatpoint.com/producer-consumer-problem-in-os) 50 | - [Dinning Philosopher problem-1](https://codecharms.me/posts/operating-system-the-dining-philosophers-problem) 51 | - [Dinning Philosopher problem-2](https://medium.com/swlh/the-dining-philosophers-problem-solution-in-c-90e2593f64e8) 52 | - [Reader Writer Problem-1](https://www.javatpoint.com/os-readers-writers-problem) 53 | - [Reader Writer Problem-2](https://www.geeksforgeeks.org/readers-writers-problem-set-1-introduction-and-readers-preference-solution/) 54 | - [Locks](https://www.javatpoint.com/os-lock-variable-mechanism) 55 | - [Priority Inversion](https://www.geeksforgeeks.org/priority-inversion-what-the-heck/) 56 | 57 | ### Deadlock 58 | 59 | - [Detection (Conditions)-1](https://www.geeksforgeeks.org/deadlock-detection-recovery/) 60 | - [Detection (Conditions)-2](https://prepinsta.com/operating-systems/deadlock-detection-and-recovery/) 61 | - [Avoidance & Prevention-1](https://www.geeksforgeeks.org/deadlock-prevention/) 62 | - [Avoidance & Prevention-1](https://digitalthinkerhelp.com/deadlock-avoidance-algorithms-in-os-operating-system-must-be-known/) 63 | - [Banker's Algo](https://www.geeksforgeeks.org/bankers-algorithm-in-operating-system-2/) 64 | - [Recovery](https://www.geeksforgeeks.org/recovery-from-deadlock-in-operating-system/) 65 | 66 | ### File Management 67 | 68 | - [Access methods](https://www.geeksforgeeks.org/file-access-methods-in-operating-system/) 69 | - [Allocation methods](https://www.geeksforgeeks.org/file-allocation-methods/) 70 | 71 | ### Memory management 72 | 73 | - https://www.geeksforgeeks.org/memory-management-in-operating-system/ 74 | 75 | 76 | - [Fixed Partitioning](https://www.geeksforgeeks.org/fixed-or-static-partitioning-in-operating-system/) 77 | - [Dynamic partitioning](https://www.geeksforgeeks.org/variable-or-dynamic-partitioning-in-operating-system/) 78 | - [Swapping](https://www.javatpoint.com/swapping-in-operating-system) 79 | - [Paging-1](https://www.geeksforgeeks.org/paging-in-operating-system/ ) 80 | - [Paging-2](https://www.studytonight.com/operating-system/paging-in-operating-systems) 81 | - [Segmentation demand paging](https://www.javatpoint.com/os-segmentation) 82 | - [OS demand paging](https://www.javatpoint.com/os-demand-pagings) 83 | - [Paging vs Segmentation](https://www.geeksforgeeks.org/difference-between-paging-and-segmentation/) 84 | - [Virtual Memory](https://www.geeksforgeeks.org/virtual-memory-in-operating-system/) 85 | - [Page table](https://www.javatpoint.com/os-page-table) 86 | - [Inverted page table](https://www.geeksforgeeks.org/inverted-page-table-in-operating-system/) 87 | - [overlay](https://www.geeksforgeeks.org/overlays-in-memory-management/) 88 | - [Page replacement algorithms-1](https://www.geeksforgeeks.org/page-replacement-algorithms-in-operating-systems/) 89 | - [Page replacement algorithms-2](https://www.javatpoint.com/os-numerical-on-lru-fifo-and-optimal) 90 | - [Belady'sAnomaly](https://www.geeksforgeeks.org/beladys-anomaly-in-page-replacement-algorithms/) 91 | - [Thrashing](https://www.geeksforgeeks.org/techniques-to-handle-thrashing/) 92 | 93 | ### Secondary Storage 94 | 95 | - https://www.geeksforgeeks.org/introduction-of-secondary-memory/ 96 | - [Disks](https://www.geeksforgeeks.org/hard-disk-drive-hdd-secondary-memory/) 97 | - [Disk space management](https://www.geeksforgeeks.org/disk-management-in-operating-system/) 98 | - [Disk Scheduling Algorithms (FCFS, SSTF, SCAN, CSCAN, LOOK) - 1](https://www.geeksforgeeks.org/disk-scheduling-algorithms/) 99 | - [Disk Scheduling Algorithms (FCFS, SSTF, SCAN, CSCAN, LOOK)-2]https://workat.tech/core-cs/tutorial/disk-scheduling-algorithms-in-operating-system-os-ope5ahnn6mhh) 100 | - [Spooling](https://www.javatpoint.com/spooling-in-operating-system) 101 | 102 | ### Input/Output 103 | 104 | - [Device Controller](https://www.javatpoint.com/device-driver-in-operating-system) 105 | - [Device management](https://www.javatpoint.com/device-management-in-operating-system) 106 | 107 | 108 | ### Protection & Security 109 | 110 | - https://www.tutorialspoint.com/Protection-and-Security-in-Operating-System 111 | 112 | ### MultiProcessor System 113 | 114 | - https://www.javatpoint.com/multiprocessing-operating-system 115 | 116 | ### Parallel Processing 117 | 118 | - https://www.javatpoint.com/parallel-processing 119 | 120 | ### Miscellaneous 121 | 122 | - https://www.interviewbit.com/operating-system-interview-questions/ 123 | 124 | 125 | ## DBMS 126 | 127 | ### Intro to DBMS 128 | 129 | - https://www.geeksforgeeks.org/introduction-of-dbms-database-management-system-set-1/ 130 | 131 | ### Architecture of DBMS 132 | 133 | - https://www.javatpoint.com/dbms-architecture 134 | - https://www.geeksforgeeks.org/introduction-of-3-tier-architecture-in-dbms-set-2/ 135 | - https://www.geeksforgeeks.org/dbms-architecture-2-level-3-level/ 136 | 137 | ### Data models 138 | 139 | - https://afteracademy.com/blog/what-is-data-model-in-dbms-and-what-are-its-types 140 | 141 | ### Schema 142 | 143 | - https://www.javatpoint.com/database-schema 144 | 145 | ### Data Independence 146 | 147 | - https://www.geeksforgeeks.org/physical-and-logical-data-independence/ 148 | 149 | ### ER diagrams 150 | 151 | - https://www.geeksforgeeks.org/introduction-of-er-model/ 152 | 153 | ### Reducing ER diagrams 154 | 155 | - https://www.geeksforgeeks.org/minimization-of-er-diagrams/ 156 | 157 | ### Generalization, specialization, Aggregation 158 | 159 | - https://www.geeksforgeeks.org/generalization-specialization-and-aggregation-in-er-model/ 160 | - https://www.geeksforgeeks.org/difference-between-generalization-and-specialization-in-dbms/ 161 | 162 | ### Keys 163 | 164 | - https://www.guru99.com/dbms-keys.html 165 | 166 | ### Functional dependencies 167 | 168 | - https://www.geeksforgeeks.org/types-of-functional-dependencies-in-dbms/ 169 | - https://www.guru99.com/dbms-functional-dependency.html 170 | 171 | ### Cannonical cover 172 | 173 | - https://www.geeksforgeeks.org/canonical-cover-of-functional-dependencies-in-dbms/ 174 | 175 | 176 | ### Normal Forms 177 | 178 | - https://www.geeksforgeeks.org/normal-forms-in-dbms/ 179 | - https://www.guru99.com/database-normalization.html 180 | 181 | ### Multivalued Dependencies 182 | 183 | - https://www.geeksforgeeks.org/multivalued-dependency-mvd-in-dbms/ 184 | 185 | ### Data Integrity 186 | 187 | - https://www.javatpoint.com/dbms-integrity-constraints 188 | 189 | ### Denormalization 190 | 191 | - https://www.geeksforgeeks.org/denormalization-in-databases/ 192 | 193 | ### Transaction 194 | 195 | - https://www.geeksforgeeks.org/introduction-to-transaction-processing/ 196 | 197 | ### ACID properties 198 | 199 | - https://www.geeksforgeeks.org/acid-properties-in-dbms/ 200 | 201 | ### Conflict Serializibility 202 | 203 | - https://www.geeksforgeeks.org/conflict-serializability-in-dbms/ 204 | 205 | ### View Serializibility 206 | 207 | - https://www.geeksforgeeks.org/view-serializability-in-dbms/ 208 | 209 | ### Concurrency Control Techniques 210 | 211 | - [Lock Based](https://www.geeksforgeeks.org/lock-based-concurrency-control-protocol-in-dbms/) 212 | - [Graph Based](https://www.geeksforgeeks.org/graph-based-concurrency-control-protocol-in-dbms/) 213 | - [Two phase locking](https://www.geeksforgeeks.org/two-phase-locking-protocol/) 214 | 215 | ### Deadlock 216 | 217 | - https://www.geeksforgeeks.org/deadlock-in-dbms/ 218 | 219 | ### Management of Deadlock 220 | 221 | - https://www.educba.com/deadlock-in-dbms/ 222 | 223 | ### Dirty read 224 | 225 | - https://www.geeksforgeeks.org/dbms-dirty-read-in-sql/ 226 | 227 | ### Starvation 228 | 229 | - https://www.geeksforgeeks.org/starvation-in-dbms/ 230 | 231 | ### Recovery Techniques 232 | 233 | - https://www.geeksforgeeks.org/database-recovery-techniques-in-dbms/ 234 | 235 | ### Distributed Database 236 | 237 | - https://phoenixnap.com/kb/distributed-database 238 | 239 | ### SQL 240 | 241 | - https://www.w3schools.com/sql/sql_intro.asp 242 | 243 | ### selection 244 | 245 | - https://www.geeksforgeeks.org/basic-operators-in-relational-algebra-2/ 246 | 247 | ### Relational algebra 248 | 249 | - https://www.geeksforgeeks.org/extended-operators-in-relational-algebra/ 250 | 251 | ### Miscellaneous 252 | 253 | - https://www.interviewbit.com/dbms-interview-questions/ 254 | - https://artoftesting.com/sql-queries-for-interview 255 | 256 | ## Computer Network 257 | 258 | ### Basis of cn 259 | 260 | - https://www.geeksforgeeks.org/basics-computer-networking/ 261 | 262 | ### Goals of Networking 263 | 264 | - https://www.geeksforgeeks.org/goals-of-networks/ 265 | 266 | ### Internet and web 267 | 268 | - https://www.geeksforgeeks.org/internet-and-web-programming/ 269 | 270 | ### Network topology 271 | 272 | - https://www.geeksforgeeks.org/types-of-network-topology/ 273 | 274 | ### Analog and digital transmission 275 | 276 | - https://www.carritech.com/news/digital-vs-analogue-transmission/ 277 | 278 | ### OSI Model 279 | 280 | - https://www.geeksforgeeks.org/layers-of-osi-model/ 281 | 282 | ### TCP\IP protocol 283 | 284 | - https://www.geeksforgeeks.org/tcp-ip-model/ 285 | 286 | ### Framing & synchronization 287 | 288 | - https://www.geeksforgeeks.org/framing-in-data-link-layer/ 289 | 290 | ### MAC address 291 | 292 | - https://www.geeksforgeeks.org/introduction-of-mac-address-in-computer-network/ 293 | 294 | ### Multiple Access Protocols 295 | 296 | - https://www.geeksforgeeks.org/multiple-access-protocols-in-computer-network/ 297 | 298 | ### Circuit switching 299 | 300 | - https://www.geeksforgeeks.org/circuit-switching-in-computer-network/ 301 | 302 | ### Packet switching 303 | 304 | - https://www.geeksforgeeks.org/packet-switching-and-delays-in-computer-network/ 305 | 306 | ### message switching 307 | 308 | - https://www.geeksforgeeks.org/message-switching-techniques/ 309 | 310 | ### Carrier sense multiple access (CSMA) 311 | 312 | - https://www.geeksforgeeks.org/carrier-sense-multiple-access-csma/ 313 | 314 | ### Controlled Access Protocols 315 | 316 | - https://www.geeksforgeeks.org/controlled-access-protocols-in-computer-network/ 317 | 318 | ### Sliding window Protocol(Go back N) 319 | 320 | - https://www.geeksforgeeks.org/sliding-window-protocol-set-1/ 321 | - https://www.geeksforgeeks.org/sliding-window-protocol-set-2-receiver-side/ 322 | 323 | ### Sliding window Protocol(selective Repeat) 324 | 325 | - https://www.geeksforgeeks.org/sliding-window-protocol-set-3-selective-repeat/ 326 | 327 | ### Stop and wait ARQ 328 | 329 | - https://www.geeksforgeeks.org/stop-and-wait-arq/ 330 | 331 | ### Manchester Encoding 332 | 333 | - https://www.geeksforgeeks.org/manchester-encoding-in-computer-network/ 334 | 335 | ### Error detection 336 | 337 | - https://www.geeksforgeeks.org/error-detection-in-computer-networks/ 338 | 339 | ### Error Correction techniques 340 | 341 | - https://www.geeksforgeeks.org/hamming-code-in-computer-network/ 342 | 343 | ### Multipexing 344 | 345 | - https://www.geeksforgeeks.org/multiplexing-channel-sharing-in-computer-network/ 346 | 347 | ### Internetworking 348 | 349 | - https://www.geeksforgeeks.org/introduction-of-internetworking/ 350 | 351 | ### Network layer Intro 352 | 353 | - https://www.geeksforgeeks.org/introduction-and-ipv4-datagram-header/ 354 | 355 | ### Ip addressing 356 | 357 | - https://www.geeksforgeeks.org/introduction-of-classful-ip-addressing/ 358 | - https://www.geeksforgeeks.org/ip-addressing-classless-addressing/ 359 | 360 | ### IPv4 361 | 362 | - https://www.geeksforgeeks.org/ipv4-classless-subnet-equation/ 363 | 364 | ### fragmentation 365 | 366 | - https://www.geeksforgeeks.org/fragmentation-network-layer/ 367 | 368 | ### IPv6 369 | 370 | - https://www.geeksforgeeks.org/internet-protocol-version-6-ipv6/ 371 | 372 | ### Internet Control Message Protocol(ICMP) 373 | 374 | - https://www.geeksforgeeks.org/internet-control-message-protocol-icmp/ 375 | 376 | ### Routing 377 | 378 | - https://www.geeksforgeeks.org/routing-v-s-routed-protocols-in-computer-network/ 379 | - https://www.geeksforgeeks.org/types-of-routing/ 380 | 381 | ### Classification of Routing 382 | 383 | - https://www.geeksforgeeks.org/classification-of-routing-algorithms/ 384 | 385 | ### Routing protocols 386 | 387 | - https://www.geeksforgeeks.org/distance-vector-routing-dvr-protocol/ 388 | 389 | ### Securing Routing protocols 390 | 391 | - https://www.geeksforgeeks.org/securing-routing-protocols/ 392 | 393 | ### Routing information protocol 394 | 395 | - https://www.geeksforgeeks.org/routing-information-protocol-rip/ 396 | 397 | ### Open shortest path first protocol 398 | 399 | - https://www.geeksforgeeks.org/open-shortest-path-first-ospf-protocol-fundamentals/ 400 | - https://www.geeksforgeeks.org/open-shortest-path-first-ospf-router-roles-configuration/ 401 | 402 | ### Network address Translation(NAT) 403 | 404 | - https://www.geeksforgeeks.org/network-address-translation-nat/ 405 | 406 | ### Tyoes of NAT 407 | 408 | - geeksforgeeks.org/types-of-network-address-translation-nat/ 409 | 410 | ### How ARP works 411 | 412 | - https://www.geeksforgeeks.org/how-address-resolution-protocol-arp-works/ 413 | 414 | ### Packet flow 415 | 416 | - https://www.geeksforgeeks.org/packet-flow-in-the-same-network/ 417 | - https://www.geeksforgeeks.org/packet-flow-in-different-network/ 418 | 419 | ### AAA (Authentication, Authorization and Accounting) 420 | 421 | - https://www.geeksforgeeks.org/computer-network-aaa-authentication-authorization-and-accounting/ 422 | 423 | ### TCP 3-way handshake 424 | 425 | - https://www.geeksforgeeks.org/tcp-3-way-handshake-process/ 426 | 427 | ### TCP connection 428 | 429 | - https://www.geeksforgeeks.org/tcp-connection-establishment/ 430 | - https://www.geeksforgeeks.org/tcp-connection-termination/ 431 | 432 | ### Transport Layer responsibilities 433 | 434 | - https://www.geeksforgeeks.org/transport-layer-responsibilities/ 435 | 436 | ### Multiplexing and demultiplexing 437 | 438 | - geeksforgeeks.org/multiplexing-and-demultiplexing-in-transport-layer/ 439 | 440 | ### User Datagram Protocol 441 | 442 | - https://www.geeksforgeeks.org/user-datagram-protocol-udp/ 443 | 444 | ### P2P file sharing 445 | 446 | - https://www.geeksforgeeks.org/p2ppeer-to-peer-file-sharing/ 447 | 448 | ### Congestion control 449 | 450 | - https://www.geeksforgeeks.org/congestion-control-in-computer-networks/ 451 | 452 | ### Congestion control techniques 453 | 454 | - https://www.geeksforgeeks.org/congestion-control-techniques-in-computer-networks/ 455 | 456 | ### Error control in tcp 457 | 458 | - https://www.geeksforgeeks.org/error-control-in-tcp/ 459 | 460 | ### Servers 461 | 462 | - https://www.geeksforgeeks.org/servers-in-computer-network/ 463 | 464 | ### Application layer protocols 465 | 466 | - https://www.geeksforgeeks.org/protocols-application-layer/ 467 | 468 | ### SMTP 469 | 470 | - https://www.geeksforgeeks.org/simple-mail-transfer-protocol-smtp/ 471 | 472 | ### DNS 473 | 474 | - https://www.geeksforgeeks.org/domain-name-system-dns-in-application-layer/ 475 | 476 | ### DNS Spoofing 477 | 478 | - https://www.geeksforgeeks.org/dns-spoofing-or-dns-cache-poisoning/ 479 | 480 | ### Diff b/w http and https 481 | 482 | - https://www.geeksforgeeks.org/difference-between-http-and-https/ 483 | 484 | ### FTP 485 | 486 | - https://www.geeksforgeeks.org/file-transfer-protocol-ftp-in-application-layer/ 487 | 488 | ### Ddifferences b/w protocols 489 | 490 | - https://www.geeksforgeeks.org/what-are-the-differences-between-http-ftp-and-smtp/ 491 | 492 | ### What is localohost 493 | 494 | - https://www.geeksforgeeks.org/what-is-local-host/ 495 | 496 | ### SNMP 497 | 498 | - https://www.geeksforgeeks.org/simple-network-management-protocol-snmp/ 499 | 500 | ### CIA triad 501 | 502 | - https://www.geeksforgeeks.org/the-cia-triad-in-cryptography/ 503 | 504 | ### RSA algorithms 505 | 506 | - https://www.geeksforgeeks.org/rsa-algorithm-cryptography/ 507 | 508 | ### firewalls 509 | 510 | - https://www.geeksforgeeks.org/introduction-of-firewall-in-computer-network/ 511 | 512 | ### Types of firwalls 513 | 514 | - https://www.geeksforgeeks.org/types-of-firewall-and-possible-attacks/ 515 | - https://www.geeksforgeeks.org/firewall-methodologies/ 516 | 517 | ### Basic Network Attacks 518 | 519 | - https://www.geeksforgeeks.org/basic-network-attacks-in-computer-network/ 520 | -------------------------------------------------------------------------------- /Coding.md: -------------------------------------------------------------------------------- 1 | # DSA/Coding Structured Self-Paced Guide 2 | 3 | ## Asymptotic Notations 4 | 5 | ## Best, Average and Worst Case 6 | 7 | - [Why performance analysis](https://www.geeksforgeeks.org/analysis-of-algorithms-set-1-asymptotic-analysis/#). 8 | - [Analyzing a problem using asymptotic analysis](https://www.geeksforgeeks.org/analysis-of-algorithms-set-2-asymptotic-analysis) 9 | 10 | ## Time/Space Complexity 11 | 12 | ### Theory 13 | 14 | - https://www.interviewbit.com/tutorial/time-complexity-of-a-computer-program/#time-complexity-of-a-computer-program 15 | - https://www.geeksforgeeks.org/understanding-time-complexity-simple-examples/ 16 | - https://www.geeksforgeeks.org/g-fact-86/ 17 | 18 | ### Questions 19 | 20 | - https://www.interviewbit.com/courses/programming/topics/time-complexity/ 21 | 22 | ## Maths 23 | 24 | ### Theory 25 | 26 | - https://www.geeksforgeeks.org/program-count-digits-integer-3-different-methods/ 27 | - https://www.geeksforgeeks.org/program-to-check-the-number-is-palindrome-or-not/ 28 | - https://www.geeksforgeeks.org/mathematical-algorithms/?ref=ghm#factorial 29 | - https://www.geeksforgeeks.org/mathematical-algorithms/?ref=ghm#gcd 30 | - https://www.geeksforgeeks.org/mathematical-algorithms/?ref=ghm#gcd 31 | - https://www.hackerearth.com/practice/notes/euclid-algorithm-made-easy-1/ 32 | - https://www.geeksforgeeks.org/mathematical-algorithms/?ref=ghm#prime 33 | - https://www.geeksforgeeks.org/mathematical-algorithms/?ref=ghm#factors 34 | - https://www.geeksforgeeks.org/sieve-of-eratosthenes/ 35 | - https://www.techiedelight.com/power-function-implementation-recursive-iterative/ 36 | 37 | ### Questions 38 | 39 | **_Easy_** 40 | 41 | - [Power of Two](https://leetcode.com/problems/power-of-two/) 42 | - [Fizz Buzz](https://leetcode.com/problems/fizz-buzz/) 43 | - [Excel Sheet Column Number](https://leetcode.com/problems/excel-sheet-column-number/) 44 | - [Add Binary](https://leetcode.com/problems/add-binary/) 45 | - [Happy Number](https://leetcode.com/problems/happy-number/) 46 | - [Matching Pair](https://practice.geeksforgeeks.org/problems/matching-pair5320/1/?page=1&query=page1) 47 | - [Count of integers](https://www.hackerearth.com/practice/math/number-theory/basic-number-theory-2/practice-problems/algorithm/too-much-to-count-fb914aed/) 48 | - [Maximum Product of Three Numbers](https://leetcode.com/problems/maximum-product-of-three-numbers/) 49 | 50 | **_Medium_** 51 | 52 | - https://leetcode.com/problems/reverse-integer/ 53 | - https://leetcode.com/problems/minimum-moves-to-equal-array-elements/ 54 | - https://leetcode.com/problems/valid-square/ 55 | - https://leetcode.com/problems/encode-and-decode-tinyurl/ 56 | - https://leetcode.com/problems/string-to-integer-atoi/ 57 | - https://leetcode.com/problems/multiply-strings/ 58 | - https://leetcode.com/problems/angle-between-hands-of-a-clock/ 59 | - https://leetcode.com/problems/integer-break/ 60 | 61 | ## Arrays 62 | 63 | ### Questions 64 | 65 | **_Easy_** 66 | 67 | - https://leetcode.com/problems/two-sum/ 68 | - https://leetcode.com/problems/best-time-to-buy-and-sell-stock/ 69 | - https://leetcode.com/problems/plus-one/ 70 | - https://leetcode.com/problems/move-zeroes/ 71 | - https://leetcode.com/problems/running-sum-of-1d-array/ 72 | - https://leetcode.com/problems/find-pivot-index/ 73 | - https://leetcode.com/problems/majority-element/ 74 | - https://leetcode.com/problems/fibonacci-number/ 75 | - https://leetcode.com/problems/squares-of-a-sorted-array/ 76 | - https://leetcode.com/problems/pascals-triangle/ 77 | - https://leetcode.com/problems/remove-duplicates-from-sorted-array/ 78 | 79 | **_Medium_** 80 | 81 | - https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/ 82 | - https://leetcode.com/problems/merge-intervals/ 83 | - https://leetcode.com/problems/3sum/ 84 | - https://leetcode.com/problems/product-of-array-except-self/ 85 | - https://leetcode.com/problems/insert-delete-getrandom-o1/ 86 | - https://leetcode.com/problems/subarray-sum-equals-k/ 87 | - https://leetcode.com/problems/next-permutation/ 88 | - https://leetcode.com/problems/spiral-matrix/ 89 | - https://leetcode.com/problems/container-with-most-water/ 90 | - https://leetcode.com/problems/rotate-image/ 91 | - https://leetcode.com/problems/word-search/ 92 | - https://leetcode.com/problems/3sum-closest/ 93 | - https://leetcode.com/problems/game-of-life/ 94 | - https://leetcode.com/problems/pairs-of-songs-with-total-durations-divisible-by-60/ 95 | - https://leetcode.com/problems/4sum/ 96 | - https://leetcode.com/problems/find-the-duplicate-number/ 97 | - https://leetcode.com/problems/combination-sum/ 98 | - https://leetcode.com/problems/jump-game-ii/ 99 | - https://leetcode.com/problems/maximum-points-you-can-obtain-from-cards/ 100 | - https://leetcode.com/problems/maximum-area-of-a-piece-of-cake-after-horizontal-and-vertical-cuts/ 101 | - https://leetcode.com/problems/max-area-of-island/ 102 | - https://leetcode.com/problems/find-all-duplicates-in-an-array/ 103 | - https://leetcode.com/problems/k-diff-pairs-in-an-array/ 104 | - https://leetcode.com/problems/subsets/ 105 | - https://leetcode.com/problems/invalid-transactions/ 106 | - https://leetcode.com/problems/jump-game/ 107 | - https://leetcode.com/problems/subarray-sums-divisible-by-k/ 108 | 109 | **_Hard_** 110 | 111 | - https://leetcode.com/problems/first-missing-positive/ 112 | - https://leetcode.com/problems/largest-rectangle-in-histogram/ 113 | - https://leetcode.com/problems/insert-delete-getrandom-o1-duplicates-allowed/ 114 | - https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/ 115 | - https://leetcode.com/problems/max-value-of-equation/ 116 | 117 | ## Two Pointers 118 | 119 | ### Questions 120 | 121 | **_Medium_** 122 | 123 | - https://leetcode.com/problems/partition-labels/ 124 | - https://leetcode.com/problems/sort-colors/ 125 | - https://leetcode.com/problems/longest-repeating-character-replacement/ 126 | 127 | **_Hard_** 128 | 129 | - https://leetcode.com/problems/maximum-number-of-visible-points/ 130 | - https://leetcode.com/problems/subarrays-with-k-different-integers/ 131 | 132 | ## Binary Search 133 | 134 | ### Questions 135 | 136 | **_Easy_** 137 | 138 | - https://leetcode.com/problems/sqrtx/ 139 | - https://leetcode.com/problems/binary-search/ 140 | - https://leetcode.com/problems/count-negative-numbers-in-a-sorted-matrix/ 141 | - https://leetcode.com/problems/peak-index-in-a-mountain-array/ 142 | 143 | **_Medium_** 144 | 145 | - https://leetcode.com/problems/time-based-key-value-store/ 146 | - https://leetcode.com/problems/search-in-rotated-sorted-array/ 147 | - https://leetcode.com/problems/powx-n/ 148 | - https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/ 149 | - https://leetcode.com/problems/find-peak-element/ 150 | - https://leetcode.com/problems/search-a-2d-matrix/ 151 | - https://leetcode.com/problems/divide-two-integers/ 152 | - https://leetcode.com/problems/capacity-to-ship-packages-within-d-days/ 153 | - https://leetcode.com/problems/minimum-limit-of-balls-in-a-bag/ 154 | 155 | **_Hard_** 156 | 157 | - https://leetcode.com/problems/median-of-two-sorted-arrays/ 158 | - https://leetcode.com/problems/count-of-smaller-numbers-after-self/ 159 | - https://leetcode.com/problems/max-sum-of-rectangle-no-larger-than-k/ 160 | - https://leetcode.com/problems/split-array-largest-sum/ 161 | - https://leetcode.com/problems/shortest-subarray-with-sum-at-least-k/ 162 | 163 | ## Sorting 164 | 165 | ### Theory 166 | 167 | - [Arrays.sort() in Java](https://www.geeksforgeeks.org/arrays-sort-in-java-with-examples/) 168 | - [Collections.sort() in Java](https://www.geeksforgeeks.org/collections-sort-java-examples/) 169 | - [Implementation of C++ STL sort in Arrays and Vectors](https://www.geeksforgeeks.org/sort-c-stl/) 170 | - [C qsort vs c++ sor](https://www.geeksforgeeks.org/c-qsort-vs-c-sort/) 171 | - [Stability in sorting algorithm](https://www.geeksforgeeks.org/stability-in-sorting-algorithms/) 172 | - [Bubble sort](https://www.geeksforgeeks.org/bubble-sort/) 173 | - [Selection sort](https://www.geeksforgeeks.org/selection-sort/) 174 | - [Insertion sort](https://www.geeksforgeeks.org/insertion-sort/) 175 | - [Merge sort](https://www.geeksforgeeks.org/merge-sort/) 176 | - [Quick sort](https://www.geeksforgeeks.org/quick-sort/) 177 | - [Heap sort](https://www.geeksforgeeks.org/heap-sort/) 178 | - [Cycle sort](https://www.geeksforgeeks.org/cycle-sort/) 179 | - [Counting sort](https://www.geeksforgeeks.org/counting-sort/) 180 | - [Radix sort](https://www.geeksforgeeks.org/radix-sort/) 181 | - [Bucket sort](https://www.geeksforgeeks.org/bucket-sort-2/) 182 | 183 | ## Hashing 184 | 185 | ### Theory 186 | 187 | - [Introduction](https://www.geeksforgeeks.org/hashing-set-1-introduction/) 188 | - [Open Addressing](https://www.geeksforgeeks.org/hashing-set-3-open-addressing/) 189 | - [Collision handling](https://www.geeksforgeeks.org/hashing-set-2-separate-chaining/) 190 | 191 | ## LinkedList 192 | 193 | ### Theory 194 | 195 | - [Singly linked list](https://www.hackerearth.com/practice/data-structures/linked-list/singly-linked-list/tutorial/) 196 | - [Doubly Linked list](https://www.geeksforgeeks.org/data-structures/linked-list/#doublyLinkedList) 197 | - [Circular Linked List](https://www.geeksforgeeks.org/data-structures/linked-list/#circularLinkedList) 198 | 199 | ### Questions 200 | 201 | **_Easy_** 202 | 203 | - [Reverse a LinkedList](https://leetcode.com/problems/reverse-linked-list/) 204 | - [Find middle of LinkedList](https://leetcode.com/problems/middle-of-the-linked-list/) 205 | - [Merge two sorted Linked List](https://leetcode.com/problems/merge-two-sorted-lists/) 206 | - [Delete a given Node when a node is given. (0(1) solution)](https://leetcode.com/problems/delete-node-in-a-linked-list/) 207 | - [Find intersection point of Y LinkedList](https://leetcode.com/problems/intersection-of-two-linked-lists/) 208 | - [Check if a LinkedList is palindrome or not](https://leetcode.com/problems/palindrome-linked-list/) 209 | 210 | **_Medium_** 211 | 212 | - [Remove N-th node from back of LinkedList](https://leetcode.com/problems/remove-nth-node-from-end-of-list/) 213 | - [Add two numbers as LinkedList](https://leetcode.com/problems/add-two-numbers-ii/) 214 | - [Detect a cycle and removing loop(two different questions and same concept)](https://leetcode.com/problems/linked-list-cycle-ii/) 215 | - [Flattening of a LinkedList](https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list/) 216 | - [Rotate a LinkedList](https://leetcode.com/problems/rotate-list/) 217 | - [Clone a Linked List with random and next pointer](https://leetcode.com/problems/copy-list-with-random-pointer/) 218 | 219 | **_Hard_** 220 | 221 | - [Reverse a LinkedList in groups](https://leetcode.com/problems/reverse-nodes-in-k-group/) 222 | 223 | ## Stack and Queue 224 | 225 | ### Stacks Theory 226 | 227 | - https://www.hackerearth.com/practice/data-structures/stacks/basics-of-stacks/tutorial/ 228 | - https://www.geeksforgeeks.org/stack-data-structure-introduction-program/ 229 | 230 | ### Queue Theory 231 | 232 | - https://www.hackerearth.com/practice/data-structures/queues/basics-of-queues/tutorial/ 233 | - https://www.geeksforgeeks.org/queue-data-structure/ 234 | 235 | ### Questions 236 | 237 | **_Easy_** 238 | 239 | - https://leetcode.com/problems/next-greater-element-i/ 240 | - https://leetcode.com/problems/implement-stack-using-queues/ 241 | - https://leetcode.com/problems/implement-queue-using-stacks/ 242 | - https://leetcode.com/problems/valid-parentheses/ 243 | - https://leetcode.com/problems/min-stack/ 244 | 245 | **_Medium_** 246 | 247 | - https://leetcode.com/problems/next-greater-element-ii/ 248 | - https://practice.geeksforgeeks.org/problems/fab3dbbdce746976ba35c7b9b24afde40eae5a04/1/ 249 | - https://leetcode.com/problems/lru-cache/ 250 | 251 | **_Hard_** 252 | 253 | - https://leetcode.com/problems/largest-rectangle-in-histogram/ 254 | - https://leetcode.com/problems/sliding-window-maximum/ 255 | 256 | ## Tree 257 | 258 | ### Questions 259 | 260 | **_Easy_** 261 | 262 | - https://leetcode.com/problems/diameter-of-binary-tree/ 263 | - https://leetcode.com/problems/invert-binary-tree/ 264 | - https://leetcode.com/problems/subtree-of-another-tree/ 265 | - https://leetcode.com/problems/symmetric-tree/ 266 | - https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ 267 | - https://leetcode.com/problems/merge-two-binary-trees/ 268 | - https://leetcode.com/problems/maximum-depth-of-binary-tree/ 269 | - https://leetcode.com/problems/binary-tree-paths/ 270 | - https://leetcode.com/problems/same-tree/ 271 | - https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/ 272 | - https://leetcode.com/problems/path-sum/ 273 | - https://leetcode.com/problems/minimum-absolute-difference-in-bst/ 274 | - https://leetcode.com/problems/sum-of-left-leaves/ 275 | - https://leetcode.com/problems/balanced-binary-tree/ 276 | 277 | **_Medium_** 278 | 279 | - https://leetcode.com/problems/maximum-width-of-binary-tree/ 280 | - https://leetcode.com/problems/count-good-nodes-in-binary-tree/ 281 | - https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/ 282 | - https://leetcode.com/problems/binary-tree-right-side-view/ 283 | - https://leetcode.com/problems/all-nodes-distance-k-in-binary-tree/ 284 | - https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/ 285 | - https://leetcode.com/problems/binary-search-tree-iterator/ 286 | - https://leetcode.com/problems/binary-tree-level-order-traversal/ 287 | - https://leetcode.com/problems/path-sum-iii/ 288 | - https://leetcode.com/problems/construct-binary-tree-from-preorder-and-postorder-traversal/ 289 | - https://leetcode.com/problems/populating-next-right-pointers-in-each-node/ 290 | - https://leetcode.com/problems/flatten-binary-tree-to-linked-list/ 291 | - https://leetcode.com/problems/maximum-width-of-binary-tree/ 292 | 293 | **_Hard_** 294 | 295 | - https://leetcode.com/problems/serialize-and-deserialize-binary-tree/ 296 | 297 | ## Binary search tree 298 | 299 | ### Theory 300 | 301 | - [Insertion](https://www.geeksforgeeks.org/binary-search-tree-set-1-search-and-insertion/) 302 | - [Deletion](https://www.geeksforgeeks.org/binary-search-tree-set-2-delete/) 303 | - [Floor](https://www.geeksforgeeks.org/floor-and-ceil-from-a-bst/) 304 | 305 | ### Questions 306 | 307 | **_Easy_** 308 | 309 | - https://leetcode.com/problems/range-sum-of-bst/ 310 | - https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ 311 | - https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/ 312 | - https://leetcode.com/problems/minimum-absolute-difference-in-bst/ 313 | 314 | **_Medium_** 315 | 316 | - https://leetcode.com/problems/validate-binary-search-tree/ 317 | - https://leetcode.com/problems/unique-binary-search-trees-ii/ 318 | - https://leetcode.com/problems/kth-smallest-element-in-a-bst/ 319 | - https://leetcode.com/problems/unique-binary-search-trees/ 320 | - https://leetcode.com/problems/recover-binary-search-tree/ 321 | 322 | ## Heap 323 | 324 | ### Theory 325 | 326 | - [Binary heap](https://www.geeksforgeeks.org/binary-heap/) 327 | - [Time complexity of building a heap](https://www.geeksforgeeks.org/time-complexity-of-building-a-heap/) 328 | - [Application of heap](https://www.geeksforgeeks.org/applications-of-heap-data-structure/) 329 | - [Heap sort](https://www.geeksforgeeks.org/heap-sort/) 330 | - [Priority Queue](https://www.geeksforgeeks.org/why-is-binary-heap-preferred-over-bst-for-priority-queue/) 331 | 332 | ### Questions 333 | 334 | **_Easy_** 335 | 336 | - https://leetcode.com/problems/last-stone-weight/ 337 | 338 | **_Medium_** 339 | 340 | - https://www.geeksforgeeks.org/nearly-sorted-algorithm/ 341 | - https://leetcode.com/problems/kth-largest-element-in-an-array/ 342 | - https://leetcode.com/problems/top-k-frequent-elements/ 343 | - https://leetcode.com/problems/task-scheduler/ 344 | - https://leetcode.com/problems/network-delay-time/ 345 | 346 | **_Hard_** 347 | 348 | - https://www.geeksforgeeks.org/merge-k-sorted-arrays/ 349 | - https://leetcode.com/problems/find-median-from-data-stream/ 350 | - https://leetcode.com/problems/merge-k-sorted-lists/ 351 | - https://leetcode.com/problems/the-skyline-problem/ 352 | 353 | ## Greedy 354 | 355 | ### Theory 356 | 357 | - https://www.geeksforgeeks.org/greedy-algorithms/ 358 | - https://youtu.be/zADj0k0waFY 359 | - https://www.hackerearth.com/practice/algorithms/greedy/basics-of-greedy-algorithms/tutorial/ 360 | - https://youtu.be/lfQvPHGtu6Q 361 | - https://youtu.be/nRB7RsK-GOw 362 | 363 | ### Questions 364 | 365 | **_Easy_** 366 | 367 | - [N meeting in one room](https://practice.geeksforgeeks.org/problems/n-meetings-in-one-room-1587115620/1) 368 | - [Activity Selection](https://practice.geeksforgeeks.org/problems/activity-selection-1587115620/1) 369 | - [Greedy algorithm to find minimum number of coins](https://www.geeksforgeeks.org/greedy-algorithm-to-find-minimum-number-of-coins/) 370 | 371 | **_Medium_** 372 | 373 | - [Fractional Knapsack Proble](https://practice.geeksforgeeks.org/problems/fractional-knapsack-1587115620/1/) 374 | - [Minimum number of platforms required for a railway](https://practice.geeksforgeeks.org/problems/minimum-platforms-1587115620/1) 375 | - [Job sequencing Problem](https://practice.geeksforgeeks.org/problems/job-sequencing-problem-1587115620/1) 376 | 377 | ## Bit Manupilation 378 | 379 | ### Theory 380 | 381 | - https://www.hackerearth.com/practice/basic-programming/bit-manipulation/basics-of-bit-manipulation/tutorial/ 382 | - https://youtu.be/5rtVTYAk9KQ 383 | - https://www.geeksforgeeks.org/all-about-bit-manipulation/?ref=gcse 384 | - https://youtu.be/Db8OmMfzwl8 385 | 386 | ### Questions 387 | 388 | **_Easy_** 389 | 390 | - [Check if a number if a power of 2 or not in O(1)](https://leetcode.com/problems/power-of-two/) 391 | - [Power Set (this is very important)](https://practice.geeksforgeeks.org/problems/power-set4302/1/) 392 | 393 | **_Medium_** 394 | 395 | - [Count total set bits](https://practice.geeksforgeeks.org/problems/count-total-set-bits-1587115620/1) 396 | - [Divide Integers without / operator](https://leetcode.com/problems/divide-two-integers/) 397 | - [Find MSB in o(1)](https://www.geeksforgeeks.org/find-significant-set-bit-number/) 398 | 399 | ## Backtracking 400 | 401 | ### Theory 402 | 403 | - https://www.geeksforgeeks.org/backtracking-algorithms/?ref=ghm 404 | - [Knight Tour Problem](https://www.geeksforgeeks.org/the-knights-tour-problem-backtracking-1/) 405 | - [Subset Sum](https://www.geeksforgeeks.org/subset-sum-backtracking-4/) 406 | - [Rat In a Maze](https://www.geeksforgeeks.org/rat-in-a-maze-backtracking-2/) 407 | - [N Queen problem](https://www.geeksforgeeks.org/n-queen-problem-backtracking-3/) 408 | - [Sudoku problem](https://www.geeksforgeeks.org/sudoku-backtracking-7/) 409 | 410 | ### Questions 411 | 412 | **_Medium_** 413 | 414 | - https://leetcode.com/problems/letter-combinations-of-a-phone-number/ 415 | - https://leetcode.com/problems/generate-parentheses/ 416 | - https://leetcode.com/problems/permutations/ 417 | - https://leetcode.com/problems/combination-sum/ 418 | - https://leetcode.com/problems/combinations/ 419 | - https://leetcode.com/problems/subsets/ 420 | - https://leetcode.com/problems/gray-code/ 421 | - https://leetcode.com/problems/unique-binary-search-trees-ii/ 422 | 423 | **_Hard_** 424 | 425 | - https://leetcode.com/problems/sudoku-solver/ 426 | 427 | ## Dynamic Programming 428 | 429 | ### Theory 430 | 431 | - https://www.geeksforgeeks.org/dynamic-programming/ 432 | - https://youtu.be/PHmgyQVKduc 433 | - https://www.hackerearth.com/practice/algorithms/dynamic-programming/introduction-to-dynamic-programming-1/tutorial/ 434 | - https://www.youtube.com/watch?v=tyB0ztf0DNY&list=PLgUwDviBIf0qUlt5H_kiKYaNSqJ81PMMY&index=2 435 | - https://leetcode.com/discuss/general-discussion/458695/dynamic-programming-patterns 436 | - https://www.youtube.com/watch?v=mmjDZGSr7EA&list=PLqM7alHXFySGbXhWx7sBJEwY2DnhDjmxm 437 | - https://leetcode.com/discuss/general-discussion/662866/Dynamic-Programming-for-Practice-Problems-Patterns-and-Sample-Solutions 438 | 439 | ### Questions 440 | 441 | **_Easy_** 442 | 443 | - [Rod Cutting](https://practice.geeksforgeeks.org/problems/rod-cutting0840/1) 444 | 445 | **_Medium_** 446 | 447 | - [Max Product Subarray](https://leetcode.com/problems/maximum-product-subarray/) 448 | - [Longest Increasing Subsequence](https://leetcode.com/problems/longest-increasing-subsequence/) 449 | - [Longest Common Subsequence](https://leetcode.com/problems/longest-common-subsequence/) 450 | - [0-1 Knapsack](https://practice.geeksforgeeks.org/problems/0-1-knapsack-problem0945/1) 451 | - [Maximum sum increasing subsequence](https://practice.geeksforgeeks.org/problems/maximum-sum-increasing-subsequence4749/1) 452 | - [Maximum sum path in matrix, (count paths, and similar type do, also backtrack to find the maximum path)](https://leetcode.com/problems/minimum-path-sum/) 453 | - [Coin change](https://leetcode.com/problems/coin-change/) 454 | - [Subset Sum](https://practice.geeksforgeeks.org/problems/subset-sum-problem-1611555638/1/) 455 | - [Word Break](https://leetcode.com/problems/word-break/) 456 | 457 | **_Hard_** 458 | 459 | - [Edit Distance](https://leetcode.com/problems/edit-distance/) 460 | - [Matrix Chain Multiplication](https://practice.geeksforgeeks.org/problems/matrix-chain-multiplication0303/1/) 461 | - [Egg Dropping](https://leetcode.com/problems/super-egg-drop/) 462 | - [Palindrome Partitioning (MCM Variation)](https://leetcode.com/problems/palindrome-partitioning-ii/) 463 | 464 | ## Graph 465 | 466 | ### Theory 467 | 468 | - [Inroduction](https://www.geeksforgeeks.org/graph-and-its-representations/) 469 | - [Representation](https://www.geeksforgeeks.org/graph-and-its-representations/) 470 | - [Breadth First Search](https://www.geeksforgeeks.org/breadth-first-search-or-bfs-for-a-graph/) 471 | - [Depth First Search](https://www.geeksforgeeks.org/depth-first-search-or-dfs-for-a-graph/) 472 | - [Shortest path in Directed Acyclic Graph](https://www.geeksforgeeks.org/shortest-path-for-directed-acyclic-graphs/) 473 | - [Prim's Algorithm/Minimum Spanning Tree](https://www.geeksforgeeks.org/prims-minimum-spanning-tree-mst-greedy-algo-5/) 474 | - [Dijkstra's Algorithm](https://www.geeksforgeeks.org/dijkstras-shortest-path-algorithm-greedy-algo-7/) 475 | - [Bellman-Ford shortest path algorithm](https://www.geeksforgeeks.org/bellman-ford-algorithm-dp-23/) 476 | - [Kruskal's Algorithm](https://www.geeksforgeeks.org/kruskals-minimum-spanning-tree-algorithm-greedy-algo-2/) 477 | - [Boruvka’s algorithm](https://www.geeksforgeeks.org/boruvkas-algorithm-greedy-algo-9/) 478 | - [Floyd Warshall](https://www.geeksforgeeks.org/floyd-warshall-algorithm-dp-16/) 479 | - [Kosaraju's algorithm](https://www.geeksforgeeks.org/connectivity-in-a-directed-graph/) 480 | - [Articulation point](https://www.geeksforgeeks.org/articulation-points-or-cut-vertices-in-a-graph/) 481 | - [Bridges in graph](https://www.geeksforgeeks.org/bridge-in-a-graph/) 482 | - [Tarjan's ALgorithm](https://www.geeksforgeeks.org/tarjan-algorithm-find-strongly-connected-components/) 483 | - [Eulerian path and circuit](https://www.geeksforgeeks.org/eulerian-path-and-circuit/) 484 | - [Topological Sort](https://www.geeksforgeeks.org/topological-sorting/) 485 | - [Find and Union operations](https://www.geeksforgeeks.org/union-find/) 486 | - [Union by rank](https://www.geeksforgeeks.org/union-find-algorithm-union-rank-find-optimized-path-compression/) 487 | - [Path compression](https://www.geeksforgeeks.org/union-find-algorithm-union-rank-find-optimized-path-compression/) 488 | 489 | ### Questions 490 | 491 | **_Easy_** 492 | 493 | - https://leetcode.com/problems/find-the-town-judge/ 494 | 495 | **_Medium_** 496 | 497 | - https://leetcode.com/problems/clone-graph/ 498 | - https://leetcode.com/problems/course-schedule/ 499 | - https://leetcode.com/problems/minimum-height-trees/ 500 | - https://leetcode.com/problems/evaluate-division/ 501 | - https://leetcode.com/problems/number-of-provinces/ 502 | - https://leetcode.com/problems/redundant-connection/ 503 | - https://leetcode.com/problems/network-delay-time/ 504 | - https://leetcode.com/problems/is-graph-bipartite/ 505 | - https://leetcode.com/problems/cheapest-flights-within-k-stops/ 506 | - https://leetcode.com/problems/find-eventual-safe-states/ 507 | - https://leetcode.com/problems/keys-and-rooms/ 508 | - https://leetcode.com/problems/possible-bipartition/ 509 | - https://leetcode.com/problems/satisfiability-of-equality-equations/ 510 | - https://leetcode.com/problems/number-of-operations-to-make-network-connected/ 511 | - https://leetcode.com/problems/regions-cut-by-slashes/ 512 | 513 | **_Hard_** 514 | 515 | - https://leetcode.com/problems/reconstruct-itinerary/ 516 | - https://leetcode.com/problems/reachable-nodes-in-subdivided-graph/ 517 | - https://leetcode.com/problems/critical-connections-in-a-network/ 518 | - https://leetcode.com/problems/frog-position-after-t-seconds/ 519 | - https://leetcode.com/problems/parallel-courses-ii/ 520 | - https://leetcode.com/problems/word-ladder/ 521 | - https://leetcode.com/problems/word-ladder-ii/ 522 | - https://leetcode.com/problems/cut-off-trees-for-golf-event/ 523 | - https://leetcode.com/problems/reachable-nodes-in-subdivided-graph/ 524 | 525 | ## Strings 526 | 527 | ### Questions 528 | 529 | **_Easy_** 530 | 531 | - https://leetcode.com/problems/add-strings/ 532 | - https://leetcode.com/problems/longest-common-prefix/ 533 | - https://leetcode.com/problems/valid-palindrome-ii/ 534 | - https://leetcode.com/problems/roman-to-integer/ 535 | - https://leetcode.com/problems/implement-strstr/ 536 | 537 | **_Medium_** 538 | 539 | - https://www.geeksforgeeks.org/rabin-karp-algorithm-for-pattern-searching/ 540 | - https://leetcode.com/problems/longest-substring-without-repeating-characters/ 541 | - https://leetcode.com/problems/minimum-remove-to-make-valid-parentheses/ 542 | - https://leetcode.com/problems/longest-palindromic-substring/ 543 | - https://leetcode.com/problems/group-anagrams/ 544 | - https://leetcode.com/problems/generate-parentheses/ 545 | - https://leetcode.com/problems/longest-substring-with-at-least-k-repeating-characters/ 546 | 547 | **_Hard_** 548 | 549 | - https://www.geeksforgeeks.org/kmp-algorithm-for-pattern-searching/ 550 | - https://www.geeksforgeeks.org/z-algorithm-linear-time-pattern-searching-algorithm/ 551 | - https://leetcode.com/problems/sliding-window-median/ 552 | 553 | ## Trie 554 | 555 | ### Theory 556 | 557 | - [Insert and Search](https://www.geeksforgeeks.org/trie-insert-and-search/) 558 | - [Delete](https://www.geeksforgeeks.org/trie-delete/) 559 | 560 | ### Questions 561 | 562 | **_Medium_** 563 | 564 | - https://leetcode.com/problems/implement-trie-prefix-tree/ 565 | - https://www.geeksforgeeks.org/longest-prefix-matching-a-trie-based-solution-in-java/ 566 | - https://www.geeksforgeeks.org/implement-reverse-dns-look-cache/ 567 | - https://www.geeksforgeeks.org/implement-forward-dns-look-cache/ 568 | - https://leetcode.com/problems/remove-sub-folders-from-the-filesystem/ 569 | 570 | **_Hard_** 571 | 572 | - https://www.geeksforgeeks.org/print-unique-rows/ 573 | - https://leetcode.com/problems/stream-of-characters/ 574 | 575 | ## Segment tree 576 | 577 | ### Theory 578 | 579 | - [Sum of given range](https://www.geeksforgeeks.org/segment-tree-set-1-sum-of-given-range/) 580 | - [Range query](https://www.geeksforgeeks.org/segment-tree-set-1-range-minimum-query/) 581 | - [Lazy propagation](https://www.geeksforgeeks.org/lazy-propagation-in-segment-tree/) 582 | - [Persistent Segment tree](https://www.geeksforgeeks.org/persistent-segment-tree-set-1-introduction/) 583 | 584 | ### Questions 585 | 586 | **_Medium_** 587 | 588 | - https://leetcode.com/problems/range-sum-query-mutable/ 589 | - https://leetcode.com/problems/my-calendar-i/ 590 | 591 | **_Hard_** 592 | 593 | - https://leetcode.com/problems/range-module/ 594 | 595 | ## BIT 596 | 597 | ### Theory 598 | 599 | - [Introduction](https://www.geeksforgeeks.org/binary-indexed-tree-or-fenwick-tree-2/) 600 | - [Two Dimensional Binary Indexed Tree or Fenwick Tree](https://www.geeksforgeeks.org/two-dimensional-binary-indexed-tree-or-fenwick-tree/) 601 | - [Range Updates and Point Queries](https://www.geeksforgeeks.org/binary-indexed-tree-range-updates-point-queries/) 602 | - [Range Update and Range Queries](https://www.geeksforgeeks.org/binary-indexed-tree-range-update-range-queries/) 603 | 604 | ### Questions 605 | 606 | **_Medium_** 607 | 608 | - https://leetcode.com/problems/count-number-of-teams/ 609 | - https://leetcode.com/problems/queries-on-a-permutation-with-key/ 610 | - https://leetcode.com/problems/range-sum-query-mutable/ 611 | -------------------------------------------------------------------------------- /CodingCompanyTopQuestions.md: -------------------------------------------------------------------------------- 1 | # Company Top 50 Questions 2 | 3 | ## Google 4 | 5 | - https://leetcode.com/problems/text-justification 6 | - https://leetcode.com/problems/decode-string 7 | - https://leetcode.com/problems/random-pick-with-weight 8 | - https://leetcode.com/problems/time-based-key-value-store 9 | - https://leetcode.com/problems/longest-string-chain 10 | - https://leetcode.com/problems/find-leaves-of-binary-tree 11 | - https://leetcode.com/problems/longest-increasing-path-in-a-matrix 12 | - https://leetcode.com/problems/shortest-path-in-a-grid-with-obstacles-elimination 13 | - https://leetcode.com/problems/snapshot-array 14 | - https://leetcode.com/problems/split-array-largest-sum 15 | - https://leetcode.com/problems/evaluate-reverse-polish-notation 16 | - https://leetcode.com/problems/guess-the-word 17 | - https://leetcode.com/problems/logger-rate-limiter 18 | - https://leetcode.com/problems/basic-calculator-iii 19 | - https://leetcode.com/problems/design-excel-sum-formula 20 | - https://leetcode.com/problems/robot-room-cleaner 21 | - https://leetcode.com/problems/trapping-rain-water-ii 22 | - https://leetcode.com/problems/maximum-points-you-can-obtain-from-cards 23 | - https://leetcode.com/problems/count-square-submatrices-with-all-ones 24 | - https://leetcode.com/problems/maximum-number-of-visible-points 25 | - https://leetcode.com/problems/maximum-number-of-points-with-cost 26 | - https://leetcode.com/problems/find-and-replace-in-string 27 | - https://leetcode.com/problems/single-threaded-cpu 28 | - https://leetcode.com/problems/find-original-array-from-doubled-array 29 | - https://leetcode.com/problems/stock-price-fluctuation 30 | - https://leetcode.com/problems/find-duplicate-subtrees 31 | - https://leetcode.com/problems/number-of-matching-subsequences 32 | - https://leetcode.com/problems/sentence-screen-fitting 33 | - https://leetcode.com/problems/shuffle-an-array 34 | - https://leetcode.com/problems/stream-of-characters 35 | - https://leetcode.com/problems/prefix-and-suffix-search 36 | - https://leetcode.com/problems/array-of-doubled-pairs 37 | - https://leetcode.com/problems/swap-adjacent-in-lr-string 38 | - https://leetcode.com/problems/longest-absolute-file-path 39 | - https://leetcode.com/problems/longest-arithmetic-subsequence-of-given-difference 40 | - https://leetcode.com/problems/step-by-step-directions-from-a-binary-tree-node-to-another 41 | - https://leetcode.com/problems/employee-importance 42 | - https://leetcode.com/problems/detect-squares 43 | - https://leetcode.com/problems/minimum-window-subsequence 44 | - https://leetcode.com/problems/find-all-people-with-secret 45 | - https://leetcode.com/problems/minimum-number-of-flips-to-convert-binary-matrix-to-zero-matrix 46 | - https://leetcode.com/problems/minimize-maximum-pair-sum-in-array 47 | - https://leetcode.com/problems/student-attendance-record-ii 48 | - https://leetcode.com/problems/satisfiability-of-equality-equations 49 | - https://leetcode.com/problems/minimum-cost-to-make-at-least-one-valid-path-in-a-grid 50 | - https://leetcode.com/problems/strange-printer 51 | - https://leetcode.com/problems/remove-all-ones-with-row-and-column-flips 52 | - https://leetcode.com/problems/rle-iterator 53 | - https://leetcode.com/problems/smallest-rectangle-enclosing-black-pixels 54 | - https://leetcode.com/problems/longest-line-of-consecutive-one-in-matrix 55 | 56 | ## Amazon 57 | 58 | - https://leetcode.com/problems/two-sum 59 | - https://leetcode.com/problems/lru-cache 60 | - https://leetcode.com/problems/merge-intervals 61 | - https://leetcode.com/problems/trapping-rain-water 62 | - https://leetcode.com/problems/number-of-islands 63 | - https://leetcode.com/problems/median-of-two-sorted-arrays 64 | - https://leetcode.com/problems/meeting-rooms-ii 65 | - https://leetcode.com/problems/integer-to-english-words 66 | - https://leetcode.com/problems/k-closest-points-to-origin 67 | - https://leetcode.com/problems/group-anagrams 68 | - https://leetcode.com/problems/merge-k-sorted-lists 69 | - https://leetcode.com/problems/word-search-ii 70 | - https://leetcode.com/problems/word-search 71 | - https://leetcode.com/problems/word-ladder 72 | - https://leetcode.com/problems/sliding-window-maximum 73 | - https://leetcode.com/problems/count-binary-substrings 74 | - https://leetcode.com/problems/consecutive-numbers-sum 75 | - https://leetcode.com/problems/design-in-memory-file-system 76 | - https://leetcode.com/problems/count-unique-characters-of-all-substrings-of-a-given-string 77 | - https://leetcode.com/problems/lfu-cache 78 | - https://leetcode.com/problems/find-median-from-data-stream 79 | - https://leetcode.com/problems/course-schedule-ii 80 | - https://leetcode.com/problems/search-suggestions-system 81 | - https://leetcode.com/problems/reorder-data-in-log-files 82 | - https://leetcode.com/problems/all-nodes-distance-k-in-binary-tree 83 | - https://leetcode.com/problems/flip-string-to-monotone-increasing 84 | - https://leetcode.com/problems/integer-to-roman 85 | - https://leetcode.com/problems/analyze-user-website-visit-pattern 86 | - https://leetcode.com/problems/first-unique-character-in-a-string 87 | - https://leetcode.com/problems/rotting-oranges 88 | - https://leetcode.com/problems/range-addition 89 | - https://leetcode.com/problems/the-kth-factor-of-n 90 | - https://leetcode.com/problems/asteroid-collision 91 | - https://leetcode.com/problems/snakes-and-ladders 92 | - https://leetcode.com/problems/maximum-units-on-a-truck 93 | - https://leetcode.com/problems/maximum-number-of-events-that-can-be-attended 94 | - https://leetcode.com/problems/concatenated-words 95 | - https://leetcode.com/problems/sum-of-subarray-minimums 96 | - https://leetcode.com/problems/design-tic-tac-toe 97 | - https://leetcode.com/problems/design-search-autocomplete-system 98 | - https://leetcode.com/problems/least-number-of-unique-integers-after-k-removals 99 | - https://leetcode.com/problems/minimum-cost-to-connect-sticks 100 | - https://leetcode.com/problems/count-number-of-nice-subarrays 101 | - https://leetcode.com/problems/subarrays-with-k-different-integers 102 | - https://leetcode.com/problems/sell-diminishing-valued-colored-balls 103 | - https://leetcode.com/problems/connecting-cities-with-minimum-cost 104 | - https://leetcode.com/problems/shortest-path-to-get-food 105 | - https://leetcode.com/problems/design-an-expression-tree-with-evaluate-function 106 | - https://leetcode.com/problems/minimum-swaps-to-group-all-1s-together 107 | - https://leetcode.com/problems/sum-of-subsequence-widths 108 | 109 | ## Microsoft 110 | 111 | - https://leetcode.com/problems/lru-cache 112 | - https://leetcode.com/problems/merge-intervals 113 | - https://leetcode.com/problems/number-of-islands 114 | - https://leetcode.com/problems/median-of-two-sorted-arrays 115 | - https://leetcode.com/problems/longest-substring-without-repeating-characters 116 | - https://leetcode.com/problems/meeting-rooms-ii 117 | - https://leetcode.com/problems/insert-delete-getrandom-o1 118 | - https://leetcode.com/problems/integer-to-english-words 119 | - https://leetcode.com/problems/group-anagrams 120 | - https://leetcode.com/problems/word-search-ii 121 | - https://leetcode.com/problems/word-search 122 | - https://leetcode.com/problems/spiral-matrix 123 | - https://leetcode.com/problems/letter-combinations-of-a-phone-number 124 | - https://leetcode.com/problems/search-in-rotated-sorted-array 125 | - https://leetcode.com/problems/design-in-memory-file-system 126 | - https://leetcode.com/problems/lfu-cache 127 | - https://leetcode.com/problems/find-median-from-data-stream 128 | - https://leetcode.com/problems/course-schedule-ii 129 | - https://leetcode.com/problems/product-of-array-except-self 130 | - https://leetcode.com/problems/string-compression 131 | - https://leetcode.com/problems/serialize-and-deserialize-binary-tree 132 | - https://leetcode.com/problems/design-hit-counter 133 | - https://leetcode.com/problems/max-stack 134 | - https://leetcode.com/problems/course-schedule 135 | - https://leetcode.com/problems/minimum-deletions-to-make-character-frequencies-unique 136 | - https://leetcode.com/problems/reverse-words-in-a-string 137 | - https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal 138 | - https://leetcode.com/problems/wildcard-matching 139 | - https://leetcode.com/problems/design-tic-tac-toe 140 | - https://leetcode.com/problems/longest-happy-string 141 | - https://leetcode.com/problems/angle-between-hands-of-a-clock 142 | - https://leetcode.com/problems/string-compression-ii 143 | - https://leetcode.com/problems/number-of-digit-one 144 | - https://leetcode.com/problems/restore-ip-addresses 145 | - https://leetcode.com/problems/minimum-time-to-make-rope-colorful 146 | - https://leetcode.com/problems/boundary-of-binary-tree 147 | - https://leetcode.com/problems/cinema-seat-allocation 148 | - https://leetcode.com/problems/find-winner-on-a-tic-tac-toe-game 149 | - https://leetcode.com/problems/maximum-frequency-stack 150 | - https://leetcode.com/problems/distribute-coins-in-binary-tree 151 | - https://leetcode.com/problems/max-chunks-to-make-sorted 152 | - https://leetcode.com/problems/count-good-nodes-in-binary-tree 153 | - https://leetcode.com/problems/longest-substring-with-at-most-k-distinct-characters 154 | - https://leetcode.com/problems/design-circular-queue 155 | - https://leetcode.com/problems/find-n-unique-integers-sum-up-to-zero 156 | - https://leetcode.com/problems/sign-of-the-product-of-an-array 157 | - https://leetcode.com/problems/inorder-successor-in-bst 158 | - https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii 159 | - https://leetcode.com/problems/max-chunks-to-make-sorted-ii 160 | - https://leetcode.com/problems/string-without-aaa-or-bbb 161 | 162 | ## Facebook/Meta 163 | 164 | - https://leetcode.com/problems/lru-cache 165 | - https://leetcode.com/problems/merge-intervals 166 | - https://leetcode.com/problems/minimum-remove-to-make-valid-parentheses 167 | - https://leetcode.com/problems/subarray-sum-equals-k 168 | - https://leetcode.com/problems/next-permutation 169 | - https://leetcode.com/problems/valid-palindrome-ii 170 | - https://leetcode.com/problems/basic-calculator-ii 171 | - https://leetcode.com/problems/k-closest-points-to-origin 172 | - https://leetcode.com/problems/kth-largest-element-in-an-array 173 | - https://leetcode.com/problems/random-pick-with-weight 174 | - https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree 175 | - https://leetcode.com/problems/powx-n 176 | - https://leetcode.com/problems/binary-tree-vertical-order-traversal 177 | - https://leetcode.com/problems/dot-product-of-two-sparse-vectors 178 | - https://leetcode.com/problems/top-k-frequent-elements 179 | - https://leetcode.com/problems/range-sum-of-bst 180 | - https://leetcode.com/problems/simplify-path 181 | - https://leetcode.com/problems/buildings-with-an-ocean-view 182 | - https://leetcode.com/problems/find-peak-element 183 | - https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree-iii 184 | - https://leetcode.com/problems/nested-list-weight-sum 185 | - https://leetcode.com/problems/vertical-order-traversal-of-a-binary-tree 186 | - https://leetcode.com/problems/copy-list-with-random-pointer 187 | - https://leetcode.com/problems/binary-tree-right-side-view 188 | - https://leetcode.com/problems/add-strings 189 | - https://leetcode.com/problems/minimum-add-to-make-parentheses-valid 190 | - https://leetcode.com/problems/word-break-ii 191 | - https://leetcode.com/problems/merge-sorted-array 192 | - https://leetcode.com/problems/valid-palindrome 193 | - https://leetcode.com/problems/making-a-large-island 194 | - https://leetcode.com/problems/shortest-distance-from-all-buildings 195 | - https://leetcode.com/problems/diameter-of-binary-tree 196 | - https://leetcode.com/problems/convert-binary-search-tree-to-sorted-doubly-linked-list 197 | - https://leetcode.com/problems/accounts-merge 198 | - https://leetcode.com/problems/exclusive-time-of-functions 199 | - https://leetcode.com/problems/capacity-to-ship-packages-within-d-days 200 | - https://leetcode.com/problems/shortest-path-in-binary-matrix 201 | - https://leetcode.com/problems/maximum-swap 202 | - https://leetcode.com/problems/diagonal-traverse 203 | - https://leetcode.com/problems/valid-word-abbreviation 204 | - https://leetcode.com/problems/valid-number 205 | - https://leetcode.com/problems/binary-search-tree-iterator 206 | - https://leetcode.com/problems/continuous-subarray-sum 207 | - https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string 208 | - https://leetcode.com/problems/remove-invalid-parentheses 209 | - https://leetcode.com/problems/verifying-an-alien-dictionary 210 | - https://leetcode.com/problems/group-shifted-strings 211 | - https://leetcode.com/problems/expression-add-operators 212 | - https://leetcode.com/problems/custom-sort-string 213 | - https://leetcode.com/problems/toeplitz-matrix 214 | 215 | ## Goldman Sachs 216 | 217 | - https://leetcode.com/problems/maximum-width-of-binary-tree/ 218 | - https://leetcode.com/problems/high-five 219 | - https://leetcode.com/problems/robot-bounded-in-circle 220 | - https://leetcode.com/problems/reaching-points 221 | - https://leetcode.com/problems/trapping-rain-water 222 | - https://leetcode.com/problems/last-substring-in-lexicographical-order 223 | - https://leetcode.com/problems/fraction-addition-and-subtraction 224 | - https://leetcode.com/problems/delete-and-earn 225 | - https://leetcode.com/problems/count-number-of-teams 226 | - https://leetcode.com/problems/fraction-to-recurring-decimal 227 | - https://leetcode.com/problems/string-compression 228 | - https://leetcode.com/problems/minimum-size-subarray-sum 229 | - https://leetcode.com/problems/consecutive-numbers-sum 230 | - https://leetcode.com/problems/find-pivot-index 231 | - https://leetcode.com/problems/shortest-subarray-with-sum-at-least-k 232 | - https://leetcode.com/problems/longest-word-in-dictionary-through-deleting 233 | - https://leetcode.com/problems/first-unique-character-in-a-string 234 | - https://leetcode.com/problems/median-of-two-sorted-arrays 235 | - https://leetcode.com/problems/design-hashmap 236 | - https://leetcode.com/problems/knight-probability-in-chessboard 237 | - https://leetcode.com/problems/group-anagrams 238 | - https://leetcode.com/problems/height-checker 239 | - https://leetcode.com/problems/palindromic-substrings 240 | - https://leetcode.com/problems/number-of-provinces 241 | - https://leetcode.com/problems/robot-return-to-origin 242 | - https://leetcode.com/problems/longest-word-in-dictionary 243 | - https://leetcode.com/problems/remove-duplicates-from-an-unsorted-linked-list 244 | - https://leetcode.com/problems/path-with-maximum-gold 245 | - https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string-ii 246 | - https://leetcode.com/problems/coin-change 247 | - https://leetcode.com/problems/elimination-game 248 | - https://leetcode.com/problems/minimum-path-sum 249 | - https://leetcode.com/problems/h-index 250 | - https://leetcode.com/problems/shortest-word-distance 251 | - https://leetcode.com/problems/circular-array-loop 252 | - https://leetcode.com/problems/divide-array-in-sets-of-k-consecutive-numbers 253 | - https://leetcode.com/problems/minimum-moves-to-equal-array-elements 254 | - https://leetcode.com/problems/lru-cache 255 | - https://leetcode.com/problems/snakes-and-ladders 256 | - https://leetcode.com/problems/h-index-ii 257 | - https://leetcode.com/problems/wildcard-matching 258 | - https://leetcode.com/problems/decode-ways 259 | - https://leetcode.com/problems/string-to-integer-atoi 260 | - https://leetcode.com/problems/3sum-smaller 261 | - https://leetcode.com/problems/number-of-islands 262 | - https://leetcode.com/problems/k-diff-pairs-in-an-array 263 | - https://leetcode.com/problems/diagonal-traverse 264 | - https://leetcode.com/problems/remove-duplicates-from-sorted-list 265 | - https://leetcode.com/problems/design-circular-deque 266 | - https://leetcode.com/problems/best-time-to-buy-and-sell-stock 267 | - https://leetcode.com/problems/sliding-window-maximum 268 | - https://leetcode.com/problems/maximum-subarray-sum-with-one-deletion 269 | - https://leetcode.com/problems/maximum-area-of-a-piece-of-cake-after-horizontal-and-vertical-cuts 270 | - https://leetcode.com/problems/find-minimum-in-rotated-sorted-array 271 | - https://leetcode.com/problems/find-median-from-data-stream 272 | - https://leetcode.com/problems/power-of-three 273 | - https://leetcode.com/problems/lfu-cache 274 | - https://leetcode.com/problems/di-string-match 275 | - https://leetcode.com/problems/next-permutation 276 | - https://leetcode.com/problems/balance-a-binary-search-tree 277 | - https://leetcode.com/problems/kth-largest-element-in-an-array 278 | - https://leetcode.com/problems/longest-palindromic-substring 279 | - https://leetcode.com/problems/regular-expression-matching 280 | - https://leetcode.com/problems/minimum-area-rectangle 281 | - https://leetcode.com/problems/maximum-size-subarray-sum-equals-k 282 | - https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iv 283 | - https://leetcode.com/problems/cousins-in-binary-tree 284 | - https://leetcode.com/problems/minimum-number-of-refueling-stops 285 | - https://leetcode.com/problems/last-stone-weight-ii 286 | - https://leetcode.com/problems/powx-n 287 | - https://leetcode.com/problems/candy 288 | - https://leetcode.com/problems/find-the-winner-of-the-circular-game 289 | - https://leetcode.com/problems/minimum-cost-to-connect-sticks 290 | - https://leetcode.com/problems/min-stack 291 | - https://leetcode.com/problems/longest-substring-without-repeating-characters 292 | - https://leetcode.com/problems/minimum-cost-for-tickets 293 | - https://leetcode.com/problems/valid-anagram 294 | - https://leetcode.com/problems/design-search-autocomplete-system 295 | - https://leetcode.com/problems/game-of-life 296 | - https://leetcode.com/problems/word-search 297 | - https://leetcode.com/problems/top-k-frequent-words 298 | - https://leetcode.com/problems/gas-station 299 | - https://leetcode.com/problems/largest-number 300 | - https://leetcode.com/problems/sliding-window-median 301 | - https://leetcode.com/problems/greatest-common-divisor-of-strings 302 | - https://leetcode.com/problems/search-in-rotated-sorted-array 303 | - https://leetcode.com/problems/count-and-say 304 | - https://leetcode.com/problems/coin-change-2 305 | - https://leetcode.com/problems/pascals-triangle-ii 306 | - https://leetcode.com/problems/letter-combinations-of-a-phone-number 307 | - https://leetcode.com/problems/maximal-square 308 | - https://leetcode.com/problems/evaluate-division 309 | - https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii 310 | - https://leetcode.com/problems/design-in-memory-file-system 311 | - https://leetcode.com/problems/the-skyline-problem 312 | - https://leetcode.com/problems/product-of-array-except-self 313 | - https://leetcode.com/problems/snapshot-array 314 | - https://leetcode.com/problems/wiggle-subsequence 315 | - https://leetcode.com/problems/jump-game-iii 316 | - https://leetcode.com/problems/distinct-subsequences 317 | - https://leetcode.com/problems/asteroid-collision -------------------------------------------------------------------------------- /LowLevelDesign.md: -------------------------------------------------------------------------------- 1 | # Low Level Design 2 | 3 | ## OOPS Concepts 4 | 5 | - https://medium.com/from-the-scratch/oop-everything-you-need-to-know-about-object-oriented-programming-aee3c18e281b 6 | - https://medium.com/@punitkmr/real-world-examples-for-oop-concepts-abb9475b2095 7 | 8 | ## SOLID principal 9 | 10 | - https://www.digitalocean.com/community/conceptual_articles/s-o-l-i-d-the-first-five-principles-of-object-oriented-design 11 | - https://medium.com/backticks-tildes/the-s-o-l-i-d-principles-in-pictures-b34ce2f1e898 12 | 13 | ## Design Patterns 14 | 15 | - [Introduction](https://refactoring.guru/design-patterns/what-is-pattern) 16 | - [Why Design patterns](https://refactoring.guru/design-patterns/why-learn-patterns) 17 | - [Classification](https://refactoring.guru/design-patterns/classification) 18 | 19 | ### Creational patterns 20 | 21 | - [Introduction](https://sourcemaking.com/design_patterns/creational_patterns) 22 | - [Factory Method](https://sourcemaking.com/design_patterns/factory_method) 23 | - [Abstract Factory](https://sourcemaking.com/design_patterns/abstract_factory) 24 | - [Builder](https://sourcemaking.com/design_patterns/builder) 25 | - [Object Pool](https://sourcemaking.com/design_patterns/object_pool) 26 | - [Prototype](https://sourcemaking.com/design_patterns/prototype) 27 | - [Singleton](https://sourcemaking.com/design_patterns/singleton) 28 | 29 | ### Structural patterns 30 | 31 | - [Introduction](https://sourcemaking.com/design_patterns/structural_patterns) 32 | - [Adapter](https://sourcemaking.com/design_patterns/adapter) 33 | - [Bridge](https://sourcemaking.com/design_patterns/bridge) 34 | - [Composite](https://sourcemaking.com/design_patterns/composite) 35 | - [Decorator](https://sourcemaking.com/design_patterns/decorator) 36 | - [Facade](https://sourcemaking.com/design_patterns/facade) 37 | - [Flyweight](https://sourcemaking.com/design_patterns/flyweight) 38 | - [Private Class Data](https://sourcemaking.com/design_patterns/private_class_data) 39 | - [Proxy](https://sourcemaking.com/design_patterns/proxy) 40 | 41 | ### Behavioral patterns 42 | 43 | - [Introduction](https://sourcemaking.com/design_patterns/behavioral_patterns) 44 | - [Chain of responsibility](https://sourcemaking.com/design_patterns/chain_of_responsibility) 45 | - [Command](https://sourcemaking.com/design_patterns/command) 46 | - [Iterator](https://sourcemaking.com/design_patterns/iterator) 47 | - [Interpreter](https://sourcemaking.com/design_patterns/interpreter) 48 | - [Mediator](https://sourcemaking.com/design_patterns/mediator) 49 | - [Memento](https://sourcemaking.com/design_patterns/memento) 50 | - [Null Object](https://sourcemaking.com/design_patterns/null_object) 51 | - [Observer](https://sourcemaking.com/design_patterns/observer) 52 | - [State](https://sourcemaking.com/design_patterns/state) 53 | - [Strategy](https://sourcemaking.com/design_patterns/strategy) 54 | - [Template method](https://sourcemaking.com/design_patterns/template_method) 55 | - [Visitor](https://sourcemaking.com/design_patterns/visitor) 56 | 57 | ## Design Questions 58 | 59 | - [Parking Lot](https://youtu.be/tVRyb4HaHgw) 60 | - [Elevator Design](https://youtu.be/siqiJAJWUVg) 61 | - [Design Library Management System](https://github.com/tssovi/grokking-the-object-oriented-design-interview/blob/master/object-oriented-design-case-studies/design-a-library-management-system.md) 62 | - [Design Amazon - Online Shopping System](https://github.com/tssovi/grokking-the-object-oriented-design-interview/blob/master/object-oriented-design-case-studies/design-amazon-online-shopping-system.md) 63 | - [Design Stack Overflow](https://github.com/tssovi/grokking-the-object-oriented-design-interview/blob/master/object-oriented-design-case-studies/design-stack-overflow.md) 64 | - [Design a Movie Ticket Booking System](https://github.com/tssovi/grokking-the-object-oriented-design-intervie-w/blob/master/object-oriented-design-case-studies/design-a-movie-ticket-booking-system.md) 65 | - [Design an ATM](https://github.com/tssovi/grokking-the-object-oriented-design-interview/blob/master/object-oriented-design-case-studies/design-an-atm.md) 66 | - [Design an Airline Management System](https://github.com/tssovi/grokking-the-object-oriented-design-interview/blob/master/object-oriented-design-case-studies/design-an-airline-management-system.md) 67 | - [Design Blackjack and a Deck of Cards](https://github.com/tssovi/grokking-the-object-oriented-design-interview/blob/master/object-oriented-design-case-studies/design-blackjack-and-a-deck-of-cards.md) 68 | - [Design a Hotel Management System](https://github.com/tssovi/grokking-the-object-oriented-design-interview/blob/master/object-oriented-design-case-studies/design-a-hotel-management-system.md) 69 | - [Design a Restaurant Management System](https://github.com/tssovi/grokking-the-object-oriented-design-interview/blob/master/object-oriented-design-case-studies/design-a-restaurant-management-system.md) 70 | - [Design Chess](https://github.com/tssovi/grokking-the-object-oriented-design-interview/blob/master/object-oriented-design-case-studies/design-chess.md) 71 | - [Design an Online Stock Brokerage System](https://github.com/tssovi/grokking-the-object-oriented-design-interview/blob/master/object-oriented-design-case-studies/design-an-online-stock-brokerage-system.md) 72 | - [Design a Car Rental System](https://github.com/tssovi/grokking-the-object-oriented-design-interview/blob/master/object-oriented-design-case-studies/design-a-car-rental-system.md) 73 | - [Design LinkedIn](https://github.com/tssovi/grokking-the-object-oriented-design-interview/blob/master/object-oriented-design-case-studies/design-linkedin.md) 74 | - [Desgin Cricinfo](https://github.com/tssovi/grokking-the-object-oriented-design-interview/blob/master/object-oriented-design-case-studies/design-cricinfo.md) 75 | - [Design Facebook - a social network](https://github.com/tssovi/grokking-the-object-oriented-design-interview/blob/master/object-oriented-design-case-studies/design-facebook.md) 76 | 77 | ## Miscellaneous 78 | 79 | - [Low Level Design Primer](https://github.com/prasadgujar/low-level-design-primer) 80 | - https://leetcode.com/discuss/study-guide/1852219/object-oriented-programming-made-easy 81 | 82 | ## Top Questions 83 | 84 | ### Microsoft 85 | 86 | - Design Multiplayer Sudoku Game 87 | - Design LRU (Static + Dynamic Input Flow) 88 | - Follow Up : Implement LFU with Least Changes in the previous design (LRU) 89 | - Design In Memory Cache 90 | - [Design Snake and Ladder Game](https://lldcoding.com/design-lld-snake-and-ladder-game-machine-coding-1) 91 | - How would you change the design if wild cards are allowed. 92 | - Design Exception Class With Test Cases 93 | - Design Money Splitter 94 | - Design Notification Service 95 | - Design Message Queue 96 | - Design a Terminal/Command Prompt 97 | 98 | ## 55+ LLD/Machine Coding Solutions 99 | [LLDcoding - Machine Coding](https://lldcoding.com) 100 | 101 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Software Engineering Interview 2 | 3 | ## Motivation 4 | 5 | This repository aims at providing collated content at a single place to prepare for Software Engineering interviews. 6 | 7 | ## Content 8 | 9 | - [Coding/DS, Algo](https://github.com/imkgarg/Software-Engineering-Interview-Primer/blob/master/Coding.md) 10 | - [Top DSA interview questions - Companywise](https://github.com/imkgarg/Awesome-Software-Engineering-Interview/blob/master/CodingCompanyTopQuestions.md) 11 | - [Object Oriented Design/Low Level Design](https://github.com/imkgarg/Software-Engineering-Interview-Primer/blob/master/LowLevelDesign.md) 12 | - [System Design/High Level Design](https://github.com/imkgarg/Software-Engineering-Interview-Primer/blob/master/SystemDesign.md) 13 | - [CS Fundamentals](https://github.com/imkgarg/Awesome-Software-Engineering-Interview/blob/master/CSFundamentals.md) 14 | - [Behavioral](https://github.com/imkgarg/Awesome-Software-Engineering-Interview/blob/master/Behavioral.md) 15 | 16 | ## Under development 17 | 18 | - Low level design questions - Company Wise 19 | - Top interview questions - Company Wise 20 | - How to ace Behavioural interview rounds 21 | - Mock interview platforms 22 | - Resume building 23 | 24 | ## Contributing 25 | 26 | Feel free to submit pull requests to help with: 27 | 28 | - Add new questions/topics 29 | - Improve new questions/topics 30 | - Fix errors 31 | - Improve sections 32 | - Add new sections 33 | 34 | ## Contact info 35 | 36 | Feel free to contact me to discuss any issues, questions, or comments. 37 | 38 | - [GitHub](https://github.com/imkgarg). 39 | - [Youtube](https://www.youtube.com/c/TechMaestroCommunity) 40 | - [Linkedin](https://www.linkedin.com/in/karan-garg/) 41 | 42 | ## License 43 | 44 | *I am providing code and resources in this repository to you under an open source license. Because this is my personal repository, the license you receive to my code and resources is from me and not my employer (Microsoft).* 45 | 46 | Copyright 2017 Karan Garg 47 | 48 | Creative Commons Attribution 4.0 International License (CC BY 4.0) 49 | 50 | http://creativecommons.org/licenses/by/4.0/ -------------------------------------------------------------------------------- /SystemDesign.md: -------------------------------------------------------------------------------- 1 | 2 | # System Design Resources 3 | 4 | ## Theory/Basics 5 | 6 | - [System Design Cheatsheet · GitHub](https://gist.github.com/vasanthk/485d1c25737e8e72759f) 7 | - [System Design Primer](https://github.com/donnemartin/system-design-primer) 8 | - [Components of System Design](https://youtu.be/aSvOThsVe5w) 9 | - [Client Server Architecture](https://youtu.be/Dg1U-jwVUrg) 10 | - [Proxies](https://youtu.be/Nu-4Q3OoR4E) 11 | - [Data & Data Flow](https://youtu.be/YBRGp_CNzXw) 12 | - [Databases types: SQL, NoSQL, Column, Search, Key Value](https://youtu.be/O_c7lzNbcKo) 13 | - [Anatomy of applications and services](https://youtu.be/iuR7rzNvbxs) 14 | - [Application Programming Interface (API)](https://youtu.be/dpcILJ8BTzU) 15 | - [Caching | Cache Patterns | Cache Invalidation & Eviction](https://youtu.be/Ez1GK2imrsY) 16 | - [What is a REST API? | CRUD APIs| REST vs HTTP](https://youtu.be/nUuAWn0AAiY) 17 | - [Message Queues | Producer Consumer Model](https://youtu.be/J6CBdSCB_fY) 18 | - [Pub Sub Messaging | Publisher Subscriber(Part 1 of 2)](https://youtu.be/EgJ7xts82Mg) 19 | - [Pub Sub Use Cases | Publisher Subscriber (Part 2 of 2)](https://youtu.be/-vd_Ay0pvFY) 20 | - [Performance Metrics](https://youtu.be/HrfgslRY7Ak) 21 | - [Performance Metrics of components in a software](https://youtu.be/R72h2D3Y76g) 22 | - [Fault and Failure in distributed systems](https://youtu.be/7vIzGmxdUvI) 23 | - [Horizontal vs vertical scaling](https://youtu.be/G1Z7w9_vspY) 24 | - [Database Replication | Synchronous vs Asynchronous](https://youtu.be/RIcNswROzCc) 25 | - [CAP | Consistency, Availability and Partitioning](https://youtu.be/pSoKUfLTe8Y) 26 | - [What is CAP Theorem? Degrees of CAP theorem, use cases](https://youtu.be/kwCFHLbIhak) 27 | - [What is Database Sharding, Logical and Physical Shards, Dynamic vs Algorithmic Sharding](https://youtu.be/YCb-tDQWrXk) 28 | - [Key based Sharding | Shard Key | Hash function | Advantages and disadvantages](https://youtu.be/arUpleGFdt4) 29 | - [Range based sharding | Advantages and disadvantages | Hotspots](https://youtu.be/avepna2q9w0) 30 | - [Directory based sharding](https://youtu.be/62adurZ_Muw) 31 | - [Basics of consistent hashing](https://youtu.be/oKAU6LaYFhw) 32 | - [How to solve capacity estimation problems faster?](https://youtu.be/VBw703pjC3E) 33 | 34 | ## Advanced Techniques 35 | 36 | - [Bloom Filter](https://medium.com/system-design-blog/bloom-filter-a-probabilistic-data-structure-12e4e5cf0638#:~:text=Bloom%20filter%20is%20a%20probabilistic,of%20applications%20in%20software%20engineering.&text=It%20allows%20for%20membership%20lookups%20in%20constant%20space%20%26%20time.) 37 | - [Cache Stampede](https://medium.com/@vaibhav0109/cache-stampede-problem-5eba782a1a4f) 38 | - [Request Coalescing](https://wikitech.wikimedia.org/wiki/Varnish#:~:text=In%20case%20a%20request%20from,object%20from%20an%20origin%20server.&text=Once%20the%20response%20is%20fetched,feature%20is%20called%20request%20coalescing.) 39 | - [Three Tier Caching](https://blogs.oracle.com/oswald/cache,-cache,-cache-part-2:-architectures) 40 | - [Consistent Hashing](https://medium.com/system-design-blog/consistent-hashing-b9134c8a9062) 41 | - [Count min sketch](https://youtu.be/kx-XDoPjoHw) 42 | 43 | ## Actual Questions 44 | 45 | **_Easy_** 46 | 47 | - [Design Chess](https://medium.com/system-designing-interviews/design-a-chess-game-dddd7ba11bc0) 48 | - [Design Tic-Tac-Toe](https://medium.com/system-designing-interviews/design-tic-tac-toe-game-1b912bba64cf) 49 | - [Design Elevator System](https://medium.com/system-designing-interviews/design-a-elevator-system-fc5832ca0b8b) 50 | 51 | 52 | **_Medium_** 53 | 54 | - [Design Uber](https://medium.com/@narengowda/uber-system-design-8b2bc95e2cfe) 55 | - [Design Instagram](https://medium.com/@dingdingsherrywang/system-design-instagram-4658eeb0423a) 56 | - [Design Facebook Messenger](https://medium.com/@eileen.code4fun/design-facebook-messenger-438d76639985) 57 | - [Design URL Shortener](https://medium.com/@narengowda/url-shortener-system-design-3db520939a1c) 58 | - [Design Dropbox / Google Drive](https://medium.com/@narengowda/system-design-dropbox-or-google-drive-8fd5da0ce55b) 59 | - [Design News Feed System / Quora](https://medium.com/@bansal_ankur/design-a-news-feed-system-6bf42e9f03fb) 60 | - [Design Price Surging Service](https://medium.com/software-system-design/price-surge-during-online-hotel-booking-ff060c33b2b6) 61 | - [Design AirBnb](https://medium.com/@nrkapri/system-design-interview-question-design-airbnb-11ac00a1d9b0) 62 | - [Desgin Distributed Queue](https://youtu.be/iJLL-KPqBpM) 63 | - [Design Rate Limiter](https://youtu.be/FU4WlwfS3G0) 64 | - [Design Distributed cache](https://youtu.be/iuqZvajTOyA) 65 | 66 | **_Hard_** 67 | 68 | - [Design YouTube / Netflix](https://medium.com/@eileen.code4fun/system-design-interview-mini-youtube-5cae5eedceae) 69 | - [Design Web Crawler](https://medium.com/@morefree7/design-a-distributed-web-crawler-f67a8ebb8336) 70 | 71 | ## Database internals 72 | 73 | ### Cassandra 74 | 75 | - [Cassandra writes in depth. Surprises you can expect from a… | by Andrzej Ludwikowski](https://blog.softwaremill.com/cassandra-writes-in-depth-6ea8d7581eb) 76 | - [Cassandra Data Modelling](https://cassandra.apache.org/doc/latest/data_modeling/data_modeling_logical.html) 77 | - [Why Cassandra writes faster than Traditional RDBMS?](https://www.linkedin.com/pulse/why-cassandra-writes-faster-than-traditional-rdbms-vishal-kharjul/) 78 | - [When to use Cassandra and when to steer clear](https://towardsdatascience.com/when-to-use-cassandra-and-when-to-steer-clear-72b7f2cede76) 79 | - [Log Structured Merge Trees](http://www.benstopford.com/2015/02/14/log-structured-merge-trees/) 80 | - [How is data read? | Apache Cassandra 3.0](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlAboutReads.html) 81 | 82 | ### Redis 83 | 84 | - [Redis Persistence – Redis](https://redis.io/topics/persistence) 85 | - [Goodbye Cache: Redis as a Primary Database](https://redislabs.com/blog/goodbye-cache-redis-as-a-primary-database/) 86 | - [Transactions in Redis](https://redis.io/topics/transactions) 87 | - [Partitioning: how to split data among multiple Redis instances. – Redis](https://redis.io/topics/partitioning) 88 | - [Horizontal scaling in/out techniques for redis cluster](https://medium.com/@iamvishalkhare/horizontal-scaling-in-out-techniques-for-redis-cluster-dcd75c696c86) 89 | - [Redis Cluster](https://redis.io/topics/cluster-tutorial) 90 | - [Key Problems with Redis Persistence](http://oldblog.antirez.com/post/a-few-key-problems-in-redis-persistence.html#:~:text=The%20problem%20is%20that%20we,memory%20at%20a%20given%20time.) 91 | 92 | ### Elasticsearch 93 | 94 | - [Elasticsearch from the Top Down](https://www.elastic.co/blog/found-elasticsearch-top-down) 95 | - [Uses of Elasticsearch, and Things to Learn](https://www.elastic.co/blog/found-uses-of-elasticsearch) 96 | - [Elasticsearch from the Bottom Up, Part 1](https://www.elastic.co/blog/found-elasticsearch-from-the-bottom-up) 97 | 98 | 99 | ### PostgreSql 100 | 101 | - [Comparing Data Stores for PostgreSQL - MVCC vs InnoDB](https://severalnines.com/database-blog/comparing-data-stores-postgresql-mvcc-vs-innodb) 102 | - [Postgres MVCC](https://malisper.me/postgres-mvcc/) 103 | - [PostgreSQL 10: Partitions of partitions!](https://joaodlf.com/postgresql-10-partitions-of-partitions.html) 104 | 105 | ### Mongo 106 | 107 | - [How To Decide If MongoDB Is Right For You](https://medium.com/better-programming/mongodb-insights-20e36c8f2fcd) 108 | 109 | ### Good reads(databases): 110 | 111 | - [Choose the right data store - Azure Application Architecture Guide](https://docs.microsoft.com/en-us/azure/architecture/guide/technology-choices/data-store-overview) 112 | - [Redis vs Aerospike](https://lynnlangit.com/2015/01/28/lessons-learned-benchmarking-nosql-on-the-aws-cloud-aerospikedb-and-redis/) 113 | - [Elasticsearch vs MongoDB](https://medium.com/@ranjeetvimal/elasticsearch-vs-mongodb-631f410cd317#:~:text=MongoDB%20is%20a%20general%20purpose,search%20engine%20backed%20by%20Lucene.&text=In%20practice%2C%20ElasticSearch%20is%20often,queries%2C%20based%20on%20data%20content.) 114 | - [MongoDB vs CouchDB](https://blog.scottlogic.com/2014/08/04/mongodb-vs-couchdb.html#:~:text=Both%20scale%20across%20multiple%20nodes,defined%20as%20a%20replica%20set.&text=CouchDB%20uses%20a%20replication%20model%20called%20Eventual%20Consistency.) 115 | 116 | 117 | ## Interesting Blogs: 118 | 119 | - [All Company Blogs !!](https://github.com/kilimchoi/engineering-blogs) 120 | - [Building Reliable Reprocessing and Dead Letter Queues with Kafka](https://eng.uber.com/reliable-reprocessing/) 121 | - [A Practical Introduction to the Internals of Kafka Storage](https://medium.com/@durgaswaroop/a-practical-introduction-to-kafka-storage-internals-d5b544f6925f) 122 | - [How To Design A Scalable Rate Limiting Algorithm](https://konghq.com/blog/how-to-design-a-scalable-rate-limiting-algorithm/) 123 | - [Data Compression for Large-Scale Streaming Experimentation | by Netflix Technology Blog](https://netflixtechblog.com/data-compression-for-large-scale-streaming-experimentation-c20bfab8b9ce) 124 | - [WhatsApp-Engineering Inside-1. Real Time messaging are now an…](https://medium.com/codingurukul/whatsapp-engineering-inside-1-1ef4845ff784) 125 | - [WhatsApp-Engineering Inside-2. In "WhatsApp-Engineering Inside-1" we…](https://medium.com/codingurukul/whatsapp-engineering-inside-2-bdd1ec354748) 126 | - [NETFLIX system design. System Design](https://medium.com/@narengowda/netflix-system-design-dbec30fede8d) 127 | - [A Design Analysis of Cloud-based Microservices Architecture at Netflix](https://medium.com/swlh/a-design-analysis-of-cloud-based-microservices-architecture-at-netflix-98836b2da45f)[Microservice Architecture pattern](https://microservices.io/patterns/microservices.html) 128 | - [Resiliency: Cache Me If You Can](https://medium.com/@adhorn/patterns-for-resilient-architecture-part-4-85afa66d6341#:~:text=Request%20coalescing&text=These%20situations%20often%20occur%20during,request%20to%20the%20downstream%20storage.) 129 | - [Microservices Design Patterns](https://vslive.com/Blogs/News-and-Tips/2018/02/Go-Fast-by-Going-Micro-Microservices-Design-Patterns-You-Should-Know.aspx#:~:text=Microservices%20design%20patterns%20are%20software,individual%20microservice%20independently%2C%20if%20desired.) 130 | - [Kafka Message Delivery Semantics](https://kafka.apache.org/documentation/#semantics) 131 | - [Replication In Depth - Kafka](https://aphyr.com/posts/293-jepsen-kafka) 132 | - [Design Decisions for Scaling Your High Traffic Feeds](http://highscalability.com/blog/2013/10/28/design-decisions-for-scaling-your-high-traffic-feeds.html) 133 | - [The Architecture Twitter Uses to Deal with 150M Active Users, 300K QPS, a 22 MB/S Firehose, and Send Tweets in Under 5 Seconds](http://highscalability.com/blog/2013/7/8/the-architecture-twitter-uses-to-deal-with-150m-active-users.html) 134 | - [Instagram Saves Switching to Cassandra from Redis](https://www.datastax.com/blog/2014/10/facebooks-instagram-making-switch-cassandra-redis-75-insta-savings) 135 | - [Jepsen Blog](https://aphyr.com/posts) 136 | - [Aerospike Developer Blog – Medium](https://medium.com/aerospike-developer-blog) 137 | - [Patterns for distributed transactions within a microservices architecture](https://developers.redhat.com/blog/2018/10/01/patterns-for-distributed-transactions-within-a-microservices-architecture/) 138 | - [A Guide to Atomikos](https://www.baeldung.com/java-atomikos) 139 | - [How to do distributed locking](https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html) 140 | - [Taming Garbage Collection](https://product.hubspot.com/blog/g1gc-fundamentals-lessons-from-taming-garbage-collection#HumongousObjects) 141 | 142 | ## Real World System Videos 143 | 144 | - [Jeff Dean's talk at Stanford](https://www.youtube.com/watch?v=modXC5IWTJI) 145 | - [Building Billion user Load Balancer at Facebook](https://www.youtube.com/watch?v=bxhYNfFeVF4) 146 | - [Netflix Guide to Microservices](https://www.youtube.com/watch?v=CZ3wIuvmHeM) 147 | - [Amazon DynamoDB deep dive](https://www.youtube.com/watch?v=HaEPXoXVf2k) 148 | - [Twitter: Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability/) 149 | 150 | ## Milestone Research Papers 151 | 152 | - [The Google File System](https://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf) 153 | - [Dynamo: Amazon's Highly Available Key-value Store](https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf) 154 | - [MapReduce: Simplified Data Processing on Large Clusters](https://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf) 155 | - [TAO: Facebook's Distributed Data Store for the Social Graph](https://www.usenix.org/system/files/conference/atc13/atc13-bronson.pdf) 156 | - [Kafka: a Distributed Messaging System for Log Processing](http://notes.stephenholiday.com/Kafka.pdf) 157 | - [Bigtable: A Distributed Storage System for Structured Data](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf) 158 | - [Spark: Cluster Computing with Working Sets](https://www.usenix.org/legacy/event/hotcloud10/tech/full_papers/Zaharia.pdf) 159 | --------------------------------------------------------------------------------