The problem is about reversing a Linked List. We are given the head node of the Linked List and we have to return the reversed Linked List's head. This is an interview problem asked in companies like Microsoft, Amazon and Adobe.

In this blog, we will see how to get started with Competitive Programming. Competitive Programming is very important because in every interview you will be asked to write some code. So, let's learn together.

This is an interview problem asked in companies like Amazon and Microsoft. Given a Linked List you have to swap nodes of the list in pairs.

Data structures are widely used in every aspect of computer science. Data structures are the way of organizing and storing data in a computer so that it can be used efficiently. In this blog, we will look into data structures, its types, operations and applications.

This is a problem of converting roman numerals into corresponding integer values. This problem is asked by Amazon, Microsoft, Facebook in their interviews.

You have a sorted and rotated array where elements are sorted and rotated circularly. Write a program to find the minimum element in the array.

In this blog, we will learn about the concept of hashing in programming. We will learn about Direct Address Table, Hash Table, Hash Function, a collision in Hash table. So, let's get started.

Iteration and Recursion are programming methodologies with similar objective and thus one might seem trivial compared to another, but that's not the case. We will be discussing the important differences between iteration and recursion and how both are useful.

Given an array of distinct integers A[ ], write a program to find all pairs of elements with the minimum absolute difference of any two elements.

This is an interview problem asked by companies like Amazon. This problem is based on Greedy Algorithm and is one of the very basic problem for understanding Greedy Algorithms.

Given a matrix or a 2-d array, you have to traverse the matrix in a spiral order. This is an interview question asked by companies like Microsoft and Amazon.

Dynamic Programming is one of the most commonly used approach of problem-solving during coding interviews. We will discuss how can we approach to a problem using Dynamic Programming and also discuss the concept of Time-Memory Trade-Off.

Two pointer approach is an essential part of a programmer’s toolkit, especially in technical interviews.

Given an array A[] of size n, you need to find the maximum and minimum element present in the array.Your algorithm should make minimum number of comparisons.

It is important to know traversal techniques in a tree before solving tree problems. We have discussed the 3 primary traversals in a tree at length in this blog with both recursive and iterative implementations.

Find two lines, which together with x-axis forms a container, such that the container contains the most water.

This is an interview problem based on the concept of dynamic programming. This question has been asked in various companies. We are dealing with solutions based on recursion, memorization and dynamic programming.

Tree is a widely-used powerful data structure that is a viable addition to a programmer’s toolkit. We shall be discussing the types and properties of trees in this blog.

There is a staircase of N steps and you can climb either 1 or 2 steps at a time. You need to count and return the total number of unique ways you can climb the staircase. The order of steps taken matters.

Given an array of distinct integers S, return all possible subsets. The set is not necessarily sorted and the total number of subsets of a given set of size n is equal to 2^n.

Given a binary tree, flatten it to a linked list in-place. After flattening, the left of each node should point to NULL and right should contain the next node in level order so that it resembles a singly linked list.

Queue is a necessary addition in a programmer's toolkit. We will discuss the basic design structure of queue and what operations are performed on it. This blog also discusses the implementation of queue using arrays and linked lists

This is an interview problem asked in companies like Amazon, Facebook and Microsoft. The problem is to reverse a linked list from position m to n and print the reversed linked list.

Stack is a very useful concept that a good programmer could use for their benefit. We will be discussing the basic design of stack and the operations that can be performed on it. We shall be also discussing the implementation of stack.

Given an array where elements are sorted in ascending order, convert it to a height balanced BST. For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differs by more than one.

In this blog, we will analyze and compare different sorting algorithms on the basis of different parameters like Time Complexity, Inplace/Outplace, Stability, etc.

In this blog, we will analyze the recursive algorithm using Recurrence Tree Method, Master theorem. We will also discuss the advantages and disadvantages of recursion.

The repeated execution of some groups of code statements in a program is called iteration. We will discuss the idea of iteration in detail in this blog.

Given a non-empty binary tree, find maximum path sum. For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along with the parent-child connections.

In this blog, we will learn about the time and space complexity of an Algorithm. We will learn about worst case, average case, and best case of an algorithm. We will also see various asymptotic notations that are used to analyse an algorithm. So, let's learn the algorithm of an algorithm.

In this blog, we will go into the insights of the famous problem-solving approach Divide and Conquer. We will discuss problems like binary search, merge sort and also implementation issues that can come in this approach.

Using recursion, certain problems can be solved quite easily. Several algorithms design techniques and data structures are based on recursive thinking.

Given a Binary Search Tree, find the Kth Largest element in the given tree.

Given a binary tree, invert the binary tree and return it. An inverted form of a Binary Tree is another Binary Tree with left and right children of all non-leaf nodes interchanged. You may also call it the mirror of the input tree.

Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.

Given an array say A having n elements, the task is to sort the array in wavy manner. In wavy manner the array is in the form where A[0] >= A[1] <= A[2] >= A[3] <= A[4] >= …..

Given an array, find the smallest missing positive integer.

Merge two sorted linked lists and return it as a new sorted list. The new list should be made by splicing together the nodes of the first two lists.

Sort a linked list using insertion sort and return its head.

Given two strings S1 and S2 of size m and n respectively, you need to check whether the two strings are an anagram of each other or not. S1 is an anagram of S2 if the characters of S1 can be rearranged to form S2.

Given an unsorted array A[] consisting of n integers, you need to find the length of the longest consecutive sequence of integers in the array.

Write a program that, Given an array of n integers and given a number K, determines whether or not there exist two elements whose sum is exactly K.

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contains a single digit. Add the two numbers and return it as a linked list.

Given an array A[] of n integer elements, find the length of the longest subarray with sum equals to 0.

Given a matrix, A of size M x N of 0's and 1's. If an element is 0, set its entire row and column to 0

You are given an array A[] with n elements. You need to find the maximum sum of a subarray among all subarrays of that array. A subarray of array A[] of length n is a contiguous segment from A[i] through A[j] where 0<= i <= j <= n.

Given the root of a binary tree, check whether it is a binary search tree or not.

Given an array A[] of n elements filled with several integers, some of them being zeroes, you need to move all the zeroes to the end.

You are given a string S and its length L and you need to sort its characters based on their frequency. The characters in the output will be distinct and ordered based on their frequency in S, higher frequency comes first.

Given an array A[] of size n, find the most frequent element in the array, i.e. the element which occurs the most number of times.

Given an array A[] of size n, you need to find the next greater element for each element in the array. Return an array that consists of the next greater element of A[i] at index i.

You are given an array A[] consisting of n elements. You need to find and return the number which appears more than n/2 times.

You are given an unsorted array A[] consisting of N elements and you need to remove all the duplicate elements from the array. All the elements in the resultant array must be unique.

Given two integer array A[] and B[] of size m and n(n <= m) respectively. We have to check whether B[] is a subset of A[] or not. An array B is a subset of another array A if each element of B is present in A. (There are no repeated elements in both the arrays)

You are given a sorted and infinite array A and an element K. You need to search for the element K in the array. If found, return the index of the element, else return -1.

Given two integer arrays A[] and B[] of size m and n, respectively. We need to find the intersection of these two arrays. The intersection of two arrays is a list of distinct numbers which are present in both the arrays. The numbers in the intersection can be in any order.

Given an array A[] of n elements and a positive integer K, find the Kth smallest element in the array. It is given that all array elements are distinct.

All over the world, millions of students are looking forward to pursuing a career in the field of computer science. Though a lot of learning resources are available online, still, most of the students are struggling to become good at it and crack the interview.