Binary Tree Inorder Traversal

Hi Geeks! In this article, we going to look at the Binary Tree in Inorder Traversal. Given a binary tree, return the inorder traversal of its nodes' values. Example: Input: [1,null,2,3] 1 \ 2 / 3 Output: [1,3,2] Follow up: Recursive solution is trivial, could you do it iteratively? Solution - Recursive approach /** * Definition for a …

Continue reading Binary Tree Inorder Traversal

Implement an LRU Cache

In this article, I explained about LRU Cache implementation with example. Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and put. get(key) - Get the value (will always be positive) of the key if the key exists in the cache, otherwise return -1.put(key, value) - Set or insert the value …

Continue reading Implement an LRU Cache

Implement Stack using Queues

Implement the following operations of a stack using queues. push(x) -- Push element x onto stack.pop() -- Removes the element on top of the stack.top() -- Get the top element.empty() -- Return whether the stack is empty. Example: MyStack stack = new MyStack(); stack.push(1); stack.push(2); stack.top(); // returns 2 stack.pop(); // returns 2 stack.empty(); // …

Continue reading Implement Stack using Queues

Implement Queue using Stacks

Implement the following operations of a queue using stacks. push(x) -- Push element x to the back of queue.pop() -- Removes the element from in front of queue.peek() -- Get the front element.empty() -- Return whether the queue is empty. Example: MyQueue queue = new MyQueue(); queue.push(1); queue.push(2); queue.peek(); // returns 1 queue.pop(); // returns …

Continue reading Implement Queue using Stacks

First Missing Positive

Given an unsorted integer array, find the smallest missing positive integer. Example 1: Input: [1,2,0] Output: 3 Example 2: Input: [3,4,-1,1] Output: 2 Example 3: Input: [7,8,9,11,12] Output: 1 Note: Your algorithm should run in O(n) time and uses constant extra space. Solution With comments public class Solution { public int firstMissingPositive(int[] nums) { int n = …

Continue reading First Missing Positive

Find All Numbers Disappeared in an Array

Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once. Find all the elements of [1, n] inclusive that do not appear in this array. Could you do it without extra space and in O(n) runtime? You may assume the returned list does not count …

Continue reading Find All Numbers Disappeared in an Array

Find All Duplicates in an Array

Given an array of integers, 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once. Find all the elements that appear twice in this array. Could you do it without extra space and in O(n) runtime? Example: Input: [4,3,2,7,8,2,3,1] Output: [2,3] Approach When find a number i, flip the number at position i-1 to negative.If …

Continue reading Find All Duplicates in an Array

How Many Numbers Are Smaller Than the Current Number

Given the array nums, for each nums[i] find out how many numbers in the array are smaller than it. That is, for each nums[i] you have to count the number of valid j's such that j != i and nums[j] < nums[i]. Return the answer in an array. Example 1: Input: nums = [8,1,2,2,3] Output: [4,0,1,1,3] Explanation: For nums[0]=8 there exist four smaller numbers than …

Continue reading How Many Numbers Are Smaller Than the Current Number

Minimum Remove to Make Valid Parentheses

Introduction In this article, we will see about Minimum Remove to Make Valid Parentheses. We have to remove the minimum number of parentheses to make a string with valid parentheses. BACKGROUND Day 15 of 100 Days of Leetcode Programming Challenge. This problem tests our knowledge in the Stack data structure. LANGUAGE I took C# programming language …

Continue reading Minimum Remove to Make Valid Parentheses

Alphabet Board Path

INTRODUCTION In this article, we will see about Alphabet Board Path. It is one of the interesting problem, find Alphabet Board Path. BACKGROUND Day 14 of 100 Days of Leetcode Programming Challenge. This is one of the top Leetcode Problem. This problem tests our logical skills. LANGUAGE I took C# programming language to solve this …

Continue reading Alphabet Board Path

How to Reorganize String?

INTRODUCTION In this article, we will see about How to Reorganize String? It is one of the interesting problem, Reorganizing string. Background Day 13 of 100 Days of Leetcode Programming Challenge. This is one of the top Leetcode Problem. This problem tests our knowledge in string manipulations and hashing. Related Problems Top K Frequent ElementsHow …

Continue reading How to Reorganize String?

How to Sort Characters By Frequency?

Introduction In this article, we will see about How to sort characters based upon frequency? Background Day 12 of 100 Days of Leetcode Programming Challenge. This is one of the top Leetcode Problem. This problem tests our knowledge in Map data structure and Sorting. Language I took C# programming language to solve this problem. Since …

Continue reading How to Sort Characters By Frequency?

Find the Missing Number in an Array

In this article, I explained about how to find the missing number in an array. Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array. Example 1: Input: [3,0,1] Output: 2 Example 2: Input: [9,6,4,2,3,5,7,0,1] Output: 8 Note:Your algorithm should run in linear run time …

Continue reading Find the Missing Number in an Array

Squares of a Sorted Array

Day 8 Welcome to 100 Days of Leetcode Challenge. Given an array of integers A sorted in non-decreasing order, return an array of the squares of each number, also in sorted non-decreasing order. Example 1: Input: [-4,-1,0,3,10] Output: [0,1,9,16,100] Example 2: Input: [-7,-3,2,3,11] Output: [4,9,9,49,121] Note: 1 <= A.length <= 10000-10000 <= A[i] <= 10000A is sorted in non-decreasing order. …

Continue reading Squares of a Sorted Array

How to Reverse Bits – Bit Manipulation

Reversing bits is one of the popular problem. How to reverse bits? In this article, we going to see about how to reverse bits in an efficient way. Reversing bits tests out understanding about bits. One of the top leetcode problem in bits section. Let's see our given problem, Reverse bits of a given 32 …

Continue reading How to Reverse Bits – Bit Manipulation

Rotate Array

Hi Geeks! Welcome to 100 Days of Leetcode Challenge. DAY 6 In this article, I'm going to explain about how to rotate an array efficiently. This is nothing but just playing with Array. Here is our given problem, Given an array, rotate the array to the right by k steps, where k is non-negative. Example 1: Input: [1,2,3,4,5,6,7] and k …

Continue reading Rotate Array

Sqrt(x)

Hi Geeks! Welcome to 100 Days of Leetcode Challenge. Day 5 Today we going to see about implementation of sqrt(x). Let's jump into our given question, Implement int sqrt(int x). Compute and return the square root of x, where x is guaranteed to be a non-negative integer. Since the return type is an integer, the decimal digits are truncated and only …

Continue reading Sqrt(x)

Evaluate Reverse Polish Notation

Hi Geeks! Welcome to 100 Days of Leetcode Challenge. Day 4 Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, *, /. Each operand may be an integer or another expression. Note: Division between two integers should truncate toward zero.The given RPN expression is always valid. That means the expression would always evaluate …

Continue reading Evaluate Reverse Polish Notation

Finding all Subsets of a given set

Hi Geeks! Welcome to 100 Days Leetcode Challenge. Day 3 In this article, I'll explain about how to find all the subsets of a given set(power set). Here is our given problem, Given a set of distinct integers, nums, return all possible subsets. Note: The solution set must not contain duplicate subsets. Example: Input: nums = [1,2,3] Output: [ [3], …

Continue reading Finding all Subsets of a given set

Product of Array Except Self

Hi Geeks! Welcome to 100 Days Leetcode Challenge. Day 2 Here is our given problem, Given an array nums of n integers where n > 1,  return an array output such that output[i] is equal to the product of all the elements of nums except nums[i]. Example: Input: [1,2,3,4] Output: [24,12,8,6] Note: Please solve it without division and in O(n). Follow up:Could you solve it with constant space complexity? (The output array does …

Continue reading Product of Array Except Self

Top K Frequent Elements

Hi Geeks! Welcome to 100 Days Leetcode Challenge. Day 1 Here is our given problem, Given a non-empty array of integers, return the k most frequent elements. Example 1: Input: nums = [1,1,1,2,2,3], k = 2 Output: [1,2] Example 2: Input: nums = [1], k = 1 Output: [1] Note: You may assume k is always valid, 1 ≤ k ≤ …

Continue reading Top K Frequent Elements

Featured

100 Days Leetcode Challenge

Hi Geeks! Welcome to 100 Days Leetcode challenge. In these days, we going to solve Leetcode's top 100 data structures and algorithm problems. Purpose of 100 Days Leetcode Challenge The main purpose of this challenge is, as a Software Developer we should have a strong command over the algorithms and data structures.Solving these problems daily, …

Continue reading 100 Days Leetcode Challenge

Trie data structure

A trie is a tree like data structure. Trie is also called as prefix tree. In this article, we going to see three main operations of trie data structure. They are: InsertDeleteSearch TrieNode class TrieNode { int terminating; TrieNode[] trieNodes = new TrieNode[26]; public TrieNode next(final char c) { return trieNodes[c - 'a']; } } …

Continue reading Trie data structure