Featured Resource One-line Algorithms questions & facts Random algorithm facts for quick interview revision when you only have a minute to spare.
Book DSA Cheatsheet A Cheatsheet for data structures and algorithms practice, coding interview and problem-solving intuition.
Featured Resource One AI Systems Question Practice AI and ML systems prompts across P/D disaggregation, inference, training, RAG, platform engineering and reliability.
Algorithms Factorial of large numbers Factorial of a non-negative number n, denoted by n!, is the product of all positive numbers less than or equal to n. With the usual approach, we can compute factorial only till 20! due to size limitation of data type. We have present how to overcome this limitation.
Algorithms Generate all sub-strings of a string We have explored the approach of generating / printing all sub-strings of a given String and have provided the implementation to do so. The time complexity to generate all substring is O(N^3) time and there are O(N^2) sub-strings for a string of length N.
Culture Most Dangerous Line of Code 💀 This is the Most Dangerous Line of Code. Do not run it. It has the power to wipe out a Linux system completely and make it useless.
Algorithms Shortest Subarray with at least K as sum In this problem, we find the length of the Shortest Subarray with at least K as sum. This can be solved in O(N) time complexity. This brings in the ideas of Monotonic Queue and Sliding Window.
Time Complexity Time and Space complexity of Radix Sort In this article, we have explained the Time and Space complexity of the radix sort with Mathematical and Intuitive Analysis.
Machine Learning (ML) Idea of Pruning in Machine Learning (ML) Pruning in Machine Learning is an optimization technique for Neural Network models. We have explained how to do pruning, different types of pruning, random pruning, advantages and disadvantages of pruning.
Data Structures Basics of R Tree R-tree is an advanced height-balanced Tree Data Structure that is widely used in production for spatial problems (like geographical map operations). We have presented the need for R Tree along with the basics of R Tree
Algorithms Counting Sort vs Radix Sort vs Bucket Sort This article compares counting sort, radix sort, and bucket sort with important points that will help you make out the differences between these sorting algorithms.
Software Engineering Idea of Consistency patterns in System Design We have explained consistency pattern in System Design along with examples for different types like Eventual, Strong and Weak Consistency.
Software Engineering Cloud Design Patterns Cloud Design Pattern as defined by cloud computing experts are a general reusable solution to commonly occurring problems in cloud architecting. We have explained the different Cloud Design Patterns like Scale Up Pattern.
Algorithms Remove K digits to make smallest number We will be solving the problem of removing K digits from a given number to form the smallest number possible without changing the order of the original number. We will use the idea of Monotonic Stack
Algorithms K-th Smallest element in a row and column wise sorted matrix We have discussed how can we find the kth smallest element in a given n x n matrix, in which every row and column is sorted in non-decreasing order and covered 3 approaches: brute force, using min-heap and using Binary Search.
Algorithms Move negative elements to front of array This article focuses on the algorithm to move the negative elements of an array to the front. This can be solved by the two-pointer approach.
Algorithms Number of Substrings with distinct characters We have explored various algorithms that will help us in determining the number of substrings that a string can have with distinct characters.
Algorithms How to approach Dynamic Programming problems? (with example) We have explained How to approach a Dynamic Programming problem with an example. The approach depends on the constraints of the problem at hand.
Algorithms Minimum Cut Problem [Overview] We have covered the basics of Minimum Cut Problem, its applications like Network Reliability, algorithms like Ford-Fulkerson Algorithm to solve it and much more.
Software Engineering Dynamic Memory Allocation in C++ Dynamic Memory Allocation in C++ is the process of allocating memory while a program is running or at run time rather than at compile time. C++ uses new and delete operator for dynamic allocation and freeing up of memory.
Problems on Binary Tree Implement Binary Tree in Python We have explored the strategy to implement Binary Tree in Python Programming Language with complete explanation and different operations like traversal, search and delete.
Time Complexity Time and Space complexity of Quick Sort We have explained the different cases like worst case, best case and average case Time Complexity (with Mathematical Analysis) and Space Complexity for Quick Sort.
Software Engineering 2D arrays in C++ (2 ways) We have discussed what are 2 Dimensional (2D) arrays and what are the different ways we can initialize them and how we can use them in C++.
Software Engineering [SOLVED] TypeError: only integer scalar arrays can be converted to a scalar index Error encountered is: "TypeError: only integer scalar arrays can be converted to a scalar index". This error comes when we handle Numpy array in the wrong way using Numpy utility functions.
Algorithms Reverse Delete Algorithm for MST We have explored the Reverse Delete Algorithm for finding Minimum Spanning Tree (MST) along with time and space complexity, implementation and application.
Software Engineering Struct vs Class in C++ We have covered the points of differences between struct and class in C++ with code examples. We have cleared the misconceptions about struct in C language and class in C++.
System Design Sidecar Design Pattern in System Design We have explored Sidecar Design Pattern in System Design along with its advantages and disadvantages and a real System Design example using Sidecar Design Pattern.
Algorithms Types of views in Binary tree We have explored the different types of views of the binary tree (like Left, Right, Top and Bottom View) and discussed how to find them.