View on GitHub

hackerrank

HackerRank personal solutions

Interview Preparation Kit

Arrays

Name Preview Code Difficulty
2D Array - DS How to access and use 2d-arrays. Python Easy
Array Manipulation Perform m operations on an array and print the maximum of the values. Python Hard
Arrays: Left Rotation Given an array and a number, d, perform d left rotations on the array. Python Easy
Minimum Swaps 2 Return the minimum number of swaps to sort the given array. Python Medium
New Year Chaos Determine how many bribes took place to get a queue into its current state. Python Medium

Dictionaries and Hashmaps

Name Preview Code Difficulty
Hash Tables: Ransom Note Given two sets of dictionaries, tell if one of them is a subset of the other. C++ Easy
Sherlock and Anagrams Find the number of unordered anagramic pairs of substrings of a string. Python Medium
Two Strings Given two strings, you find a common substring of non-zero length. Python Easy

Sorting

Name Preview Code Difficulty
Sorting: Bubble Sort Find the minimum number of conditional checks taking place in Bubble Sort Python Easy
Sorting: Comparator Write a Comparator for sorting elements in an array. C++ Medium
Merge Sort: Counting Inversions How many shifts will it take to Merge Sort an array? Python Hard

String Manipulation

Name Preview Code Difficulty
Alternating Characters Calculate the minimum number of deletions required to convert a string into a string in which consecutive characters are different. Python Easy
Common Child Given two strings a and b of equal length, what’s the longest string (s) that can be constructed such that s is a child to both a and b? C++ Python Medium
Strings: Making Anagrams How many characters should one delete to make two given strings anagrams of each other? Python Easy
Sherlock and the Valid String Remove some characters from the string such that the new string’s characters have the same frequency. Python Medium

Greedy Algorithms

Name Preview Code Difficulty
Minimum Absolute Difference in an Array Given a list of integers, calculate their differences and find the difference with the smallest absolute value. Python Easy
Name Preview Code Difficulty
Hash Tables: Ice Cream Parlor Help Sunny and Johnny spend all their money during each trip to the Ice Cream Parlor. Python Medium
Pairs Given N numbers, count the total pairs of numbers that have a difference of K. Python Medium

Stacks and Queues

Name Preview Code Difficulty
Balanced Brackets Given a string containing three types of brackets, determine if it is balanced. Python Medium
Queues: A Tale of Two Stacks Create a queue data structure using two stacks. C++ Medium
Largest Rectangle Given n buildings, find the largest rectangular area possible by joining consecutive K buildings. Python Medium

Graphs

Name Preview Code Difficulty
BFS: Shortest Reach in a Graph Implement a Breadth First Search (BFS). C++ Hard
DFS: Connected Cell in a Grid Find the largest connected region in a 2D Matrix. C++ Hard

Trees

Name Preview Code Difficulty
Binary Search Tree : Lowest Common Ancestor Given two nodes of a binary search tree, find the lowest common ancestor of these two nodes. C++ Easy
Trees: Is This a Binary Search Tree? Given the root of a binary tree, determine if it’s a binary search tree. Python Medium
Tree: Height of a Binary Tree Given a binary tree, print its height. C++ Python Easy
Tree: Huffman Decoding Given a Huffman tree and an encoded binary string, you have to print the original string. C++ Medium

Linked Lists

Name Preview Code Difficulty
Linked Lists: Detect a Cycle Given a pointer to the head of a linked list, determine whether the list has a cycle. C++ Easy
Find Merge Point of Two Lists Given two linked lists, find the node where they merge into one. C++ Easy
Insert a node at a specific position in a linked list Insert a node at a specific position in a linked list. C++ Easy
Inserting a Node Into a Sorted Doubly Linked List Create a node with a given value and insert it into a sorted doubly-linked list C++ Easy
Reverse a doubly linked list Given the head node of a doubly linked list, reverse it. Python Easy

Recursion and Backtracking

Name Preview Code Difficulty
Recursion: Fibonacci Numbers Compute the $n^{th}$ Fibonacci number. C++ Easy
Recursion: Davis’ Staircase Find the number of ways to get from the bottom of a staircase to the top if you can jump 1, 2, or 3 stairs at a time. C++ Medium

Miscellaneous

Name Preview Code Difficulty
Time Complexity: Primality Determine whether or not a number is prime in optimal time. C++ Medium
Flipping bits Flip bits in its binary representation. C++ Easy
Friend Circle Queries Process the queries and after each query print the number of people largest friend circle. Python Medium
Maximum Xor Find the maximum xor value in the array. C++ Medium